sql查询当天记录

sql查询当天记录,第1张

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_1,日期列名为:date_col):

  MSSQL获得当天记录:

select * from table_1 where date_col>=convert(varchar(10),Getdate(),120) and date_col<convert(varchar(10),dateadd(d,1,Getdate()),120)

  MYSQL获得当天记录:

select * from table_1 where date_col>=date(now()) and date_col<DATE_ADD(date(now()),INTERVAL 1 DAY)

Oracle获得当天记录:

select * from table_1 where date_col>=to_char(sysdate,'yyyy-mm-dd') and date_col<to_char(sysdate+1,'yyyy-mm-dd')

  Access获得当天记录:

select * from table_1 where date_col>=date() and date_col<DateAdd("d",1,date())

4、另外,在查询的时候,尽量不要对列进行运算,因为日期列上若有索引,就无法使用索引了。

本季度的第一天 ,然后你可以把字符串再转换为日期。 方法很多,包括同一个函数的别名(同义词)也很多。比如CURDATE(),CURRENT_DATE(), CURRENT_DATE, NOW 等都可以返回当天

mysql教程>select CURDATE(),ELT(QUARTER(CURDATE()),

-> year(CURDATE())*1000+0101,

-> year(CURDATE())*1000+0401,

-> year(CURDATE())*1000+0701,

-> year(CURDATE())*1000+1001) as firstDayofQ

+------------+-------------+

| CURDATE() | firstDayofQ |

+------------+-------------+

| 2009-05-19 | 2009401 |

+------------+-------------+

1 row in set (0.00 sec)

mysql>

用mysql语句获取本季度的第一天

本月的第一天,

date(

concat(year(curdate()),'-',month(curdate()),'-','1'))

本周的第一天

curdate()-

WEEKDAY(curdate())

用mysql语句获取本季度的第一天

你的问题描述的不够明确,不太清楚你要的效果,这样,给你两种效果:

1、显示某个时间段的数据:

select * from tb where hour(col_datetime)=18 and to_days(col_datetime)=to_days(curdate())

2、按时间段排序,显示当天所有时间段数据:

select '今天'+cast(hour(col_datetime) as varchar(2))+'时发布的内容',* from tb where to_days(col_datetime)=to_days(curdate()) order by col_datetime


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8488733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存