当前位置:首页 » 编程语言 » SQL怎么选择一段日期
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

SQL怎么选择一段日期

发布时间: 2022-10-04 00:38:08

A. 在sql语句中 怎么在不考虑年份的情况下,选择一段日期

这个问题同时间的比较类似,只需将月日转换为对应的小数,通过数值比较就不会出现逻辑问题。
假设数据库中日期字段为 n1和n2 则对应语句可以写为:

where convert(float,datename(month,n1)+'.' +datename(day,n1)) - convert(float,datename(month,n2)+'.' +datename(day,n2)) < 0

B. SQL语句查询特定时间段的数据怎么写

SQL服务器:

Select*fromtablewhere'2008-7-1'和'2008-12-31'

访问

从表中选择发生日期>#2008-7-1#和发生日期<#2008-12-31#

就是这样:注意,SQLserver中的日期和访问有一点不同。

(2)SQL怎么选择一段日期扩展阅读:

SQL查询日期语句

Select*fromShopOrderwheredatediff(week,ordTime,getdate()-1)=0//查询第一年的日期

Select*fromShopOrder,其中datediff(day,ordTime,getdate()-1)=0//查询当天的所有数据

SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天

SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 //上个月

搜索当天记录的其他方法:

SELECT*

FROMj_GradeShop

其中(GAddTimeBETWEENCONVERT(datetime,LEFT(GETDATE(),10)+'00:00:00.000'))

并转换(datetime,LEFT(GETDATE(),10)+'00:00:00.00.000')+1)

由GAddTime指定的订单

C. 在sql数据库中如何筛选以日期为条件的记录

sql数据库中如筛选以日期为条件的记录,可以用有二种方法具体实现,如下:
第一种:直接用语句
date1与date2是字符串
SQL.Tet:='select
*
from
table
where
字段
between
'+Quotedstr(date1)+'
and
'+Quotedstr(date2);
date1与date2是日期
SQL.Tet:='select
*
from
table
where
字段
between
'+Quotedstr(DateTimeToStr(date1))+'
and
'+Quotedstr(DateTimeToStr(date2));
第二种:用参数形式:
SQL.Tet:='select
*
from
table
where
字段
between
:d1
and
:d2';
Parameters.ParamByName('d1').Value:=date1;
Parameters.ParamByName('d2').Value:=date2;

D. SQL中如何截取一段时间

用分组求和函数,对日期进行分组,对记录进行计数。date_cln1
select turnc(upload_day,'dd'),count(1) from table_name group by turnc(upload_day,'dd');
希望可以帮到你

E. SQL中按日期进行查询,如何截取日期进行查询

那你就直接写 time>date'2012-01-01' and time<date'2013-01-01'
当然,如何把'2012-01-01'转换为数据库的时间类型,各种数据库是不一样的,oracle中是to_date('2012-01-01','yyyy-MM-dd')

F. sql 如何选择最近的日期

呵呵,midasblesshj的方法其实第一种是好的,但是第二种要是把abs函数去掉了那就坏了,因为去掉了abs,无论你怎样做,取到的永远都是最小日期的值,当查询日期比20090605大时,结果正确,但是比他小时,结果就是错了的,因为min函数可以是负的,最小的负数则离目标结果很远了。
正确的应该就是第一个语句,要去除重复加distinct:
select distincr * from 表 where abs(datediff(d,date,'20090605'))=(select min(abs(datediff(d,date,'20090605')))from 表)
但是又正如midasblesshj所说,有个问题,当查询'20090605'时,离他最近的有可能有两个值,比如'20090604'和'20090606'。
所以这就需要楼主做取舍了 如果两个都要,则什么都不加,只要一个,则利用top和order by :
select distincr top 1 * from 表 where abs(datediff(d,date,'20090605'))=(select min(abs(datediff(d,date,'20090605')))from 表) order by date
当然 是要大的还是小的那个,就使用asc和desc来取吧

G. 在sql数据库中如何筛选以日期为条件的记录

sql数据库中如筛选以日期为条件的记录,可以用有二种方法具体实现,如下:
第一种:直接用语句

date1与date2是字符串
SQL.Tet:='select * from table where 字段 between '+Quotedstr(date1)+' and '+Quotedstr(date2);

date1与date2是日期
SQL.Tet:='select * from table where 字段 between '+Quotedstr(DateTimeToStr(date1))+' and '+Quotedstr(DateTimeToStr(date2));

第二种:用参数形式:
SQL.Tet:='select * from table where 字段 between :d1 and :d2';
Parameters.ParamByName('d1').Value:=date1;
Parameters.ParamByName('d2').Value:=date2;

H. 如何在SQL中按时间段查询数据

sql server:

select * from 表 where 发生日期>'2008-7-1' and 发生日期<'2008-12-31'

access:

select * from 表 where 发生日期>#2008-7-1# and 发生日期<#2008-12-31#

这样就可以了,注意sql server与access中的日期有一点不一样。

(8)SQL怎么选择一段日期扩展阅读:

sql查询日期语句

select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年的数据

select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查询当天的所有数据

SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天

SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 //上一月

查询当天记录另类的方法:

SELECT *

FROM j_GradeShop

WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')

AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)

ORDER BY GAddTime DESC

I. sql 查询日期分段问题

这个我做过个统计模块,可以实现,贴其中1个时间段SQL整理函数你理解下,不理解可以hi我

function global_sql($type, $date, $from, $to, $vol){
if($type==0){
if ($date==0){
$sql = "DATE(".$vol.")=DATE(now())";
}else if ($date==1){
$sql = "DATE(".$vol.")=DATE_SUB(now(),Interval 1 DAY)";
}else if ($date==2){
$from = date("Y-m-",time()).$from;
$to = date("Y-m-",time()).$to;
$sql = "DATE(".$vol.")>='".$from."' and DATE(".$vol.")<='".$to."'";
}
}else if ($type==1){ #天
if ($date==0){
$sql = "DATE(".$vol.")=DATE(now())";
}else if ($date==1){
$sql = "DATE(".$vol.")=DATE(DATE_SUB(now(),Interval 1 DAY))";
}else if ($date==2){
$from = date("Y-m-",time()).$from;
$to = date("Y-m-",time()).$to;
$sql = "DATE(".$vol.")>='".$from."' and DATE(".$vol.")<='".$to."'";
}
}else if ($type==2){ #周
if ($date==0){
$sql = "DATE_FORMAT(".$vol.",'%Y%u')=DATE_FORMAT(now(),'%Y%u')";
}else if ($date==1){
if ( date("W",time())<=1 ){
$temp = (date("Y",time())-1).(52);
}else{
$temp = date("Y",time()).(date("W",time())-1);
}

$sql = "DATE_FORMAT(".$vol.",'%Y%u')='".$temp."'";
}else if ($date==2){
$from = date("Y",time()).$from;
$to = date("Y",time()).$to;
$sql = "DATE_FORMAT(".$vol.",'%Y%u')>='".$from."' and DATE_FORMAT(".$vol.",'%Y%u')<='".$to."'";
}
}else if ($type==3){ #月
if ($date==0){
$sql = "DATE_FORMAT(".$vol.",'%Y%c')=DATE_FORMAT(now(),'%Y%c')";
}else if ($date==1){
if ( date("n",time()) <= 1 ){
$temp = (date("Y",time())-1).(12);
}else{
$temp = date("Y",time()).(date("n",time())-1);
}

$sql = "DATE_FORMAT(".$vol.",'%Y%c')=".$temp;
}else if ($date==2){
$from = date("Y",time()).$from;
$to = date("Y",time()).$to;
$sql = "DATE_FORMAT(".$vol.",'%Y%c')>=".$from." and DATE_FORMAT(".$vol.",'%Y%c')<=".$to;
}
}else if ($type==4){ #季度
$year = date("Y",time());
if ($date==0){
$temp = re_quarter( quarter( date("n",time()) ) );
$sql = "DATE_FORMAT(".$vol.",'%Y%c') in (".$year.$temp[0].",".$year.$temp[1].",".$year.$temp[2].")";
}else if ($date==1){
if ( date("n",time()) <= 1 ){
$year -= 1;
$temp = re_quarter( quarter( 4 ) );
}else{
$temp = re_quarter( quarter( date("n",time())-1 ) );
}

$sql = "DATE_FORMAT(".$vol.",'%Y%c') in (".$year.$temp[0].",".$year.$temp[1].",".$year.$temp[2].")";
}else if ($date==2){
$year = date("Y",time());
#$sql = "DATE_FORMAT(".$vol.",'%Y%c')>=".$from." and DATE_FORMAT(".$vol.",'%Y%c')<=".$to;
$sql = "year(".$vol.")=".$year." and (quarter(".$vol.")>=".$from." and quarter(".$vol.")<=".$to.")";
}
}else if ($type==5){ #年
if ($date==0){
$sql = "YEAR(".$vol.")=YEAR(now())";
}else if ($date==1){
$sql = "YEAR(".$vol.")=YEAR(now())-1";
}else if ($date==2){
$sql = "YEAR(".$vol.")>=".$from." and YEAR(".$vol.")<=".$to;
}
}
return $sql;
}

J. SQL里怎么提取一个时段日期

1.生成查询表
select orderedon,NAME,PARTNUM,PARTNUM,DESCRIPTION INTO 查询表 FROM 表1 where (orderedon>#1996-08-31# ) and (orderedon<#1996-10-01# )
2.分段查询(分2次运行)
select orderedon,NAME,PARTNUM,PARTNUM,DESCRIPTION INTO 查询临时表 FROM 表1 where (orderedon>#1996-08-31# )
select orderedon,NAME,PARTNUM,PARTNUM,DESCRIPTION INTO 查询表2 FROM 查询临时表 where (orderedon<#1996-10-01# )