在mysql中如何查询每天固定时间段内的数据?

在mysql中如何查询每天固定时间段内的数据?,第1张

你应该把你要查的表结构说一下,表中是否有字段存时间??? \x0d\x0a你的between and 语法错误! \x0d\x0a\x0d\x0aSELECT a.pin, a.score , b.`Name`\x0d\x0aFROM xeng.score_history a, ulinkm_xedu.account b\x0d\x0aWHERE\x0d\x0aa.app_type = 'p24Point' AND\x0d\x0aa.pin = b.PIN AND \x0d\x0aUNIX_TIMESTAMP( a.date_time) BETWEEN UNIX_TIMESTAMP(CURDATE())+3600*10 AND UNIX_TIMESTAMP(CURDATE())+3600*20 \x0d\x0a \x0d\x0aGROUP BY\x0d\x0aa.pin\x0d\x0aORDER BY\x0d\x0aa.score DESC\x0d\x0a \x0d\x0a说明 UNIX_TIMESTAMP( a.date_time): 将日期格式转换为时间戳格式\x0d\x0a UNIX_TIMESTAMP(CURDATE()): 当天 00:00 的是时间戳 \x0d\x0a3600*10 :你设定的时间范围 单位:秒

SELECT * FROM 表 DATE(createtime) = (php) DATE("Y-m-d")

SELECT * FROM 表 DATE(createtime) =(php) DATE("Y-m-d",strtotime('-1day'))

等号后面是php函数,

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存