1、SQL在查询当天记录时要注意是从当天的0点0分0秒0毫秒开始,到次日0点0分0秒0毫秒截止,但不包含次日的0点0分0秒0毫秒。
2、注意:在不同数据库产品中,获得当天日期的函数不一样。
MSSQL获得当前日期:convert(varchar(10),Getdate(),120)
MYSQL获得当前日期:date(now())
Oracle获得当前日期:to_char(sysdate,‘yyyy-mm-dd’)
Access获得当前日期:date()
3、在各个数据库里获得当天的记录写法为(假设表名为:Table,日期列名为:date):
MSSQL获得当天记录:
select * from table
where date >=convert(varchar(10),Getdate(),120)
and date < convert(varchar(10),dateadd(d,1,Getdate()),120)
MYSQL获得当天记录:
select * from table
where date >= date(now())
and date < DATE_ADD(date(now()),INTERVAL 1 DAY)
Oracle获得当天记录:
select * from table
where date >= to_char( sysdate ,‘yyyy-mm-dd’)
and date < to_char( sysdate+1 ,‘yyyy-mm-dd’)
Access获得当天记录:
select * from table
where date >= date()
and date < DateAdd(“d”, 1, date())
4、另外,在查询的时候,尽量不要对列进行运算,因为日期列上若有索引,就无法使用索引了。