MySQL数据库里面有个字段是datetime类型的,我想要根据这个字段查询今天的数据,where条件怎么写啊?

如题所述

第1个回答  2013-11-05
SELECT * from xxx_table WHERE DATE_FORMAT(date_col,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')

追问

我想查昨天0:00到今天0:00时间段的数据怎么查??也就是昨天晚上24:00到今天24:00整个时间段的?能查吗?谢谢

追答SELECT * FROM table_xxx WHERE date_col BETWEEN date_sub(CURDATE(),interval 1 day) AND CURDATE()

追问

我表字段是datetime类型的,不是时间戳,你这方法能行吗? 字段记录是2013-01-06 11:05:07

追答

能行啊,试下呗

本回答被提问者采纳
第2个回答  2013-11-05
select * from 表
where left(字段,10)=CURDATE()

试试这样,,,

追问

大哥,我不是用的框架

追答

。。。你不是要求mysql语句吗,mysql查询当天的就可以这样啊,你到底要什么?。。

追问

我想查昨天0:00到今天0:00时间段的数据怎么查??也就是昨天晚上24:00到今天晚上24:00整个时间段的?能查吗?谢谢

追答

mysql 中没有昨天的0点或者24点吧?一般的时间都会是今天的0点,或者是昨天的23.59.59;

所以,直接截取时间字段的年月天,然后=curdate()这样就是对的了,,,

我假设你的时间字段是个now(),你看下这个语句就明白了,,

select now(),left(now(),10),curdate()。。。
我最开始回答的就是取当天的
你要是想取昨天和今天两天的数据,直接用下面兄弟的语句就是对的,他的是取昨天和今天之间的数据

追问

我表字段是datetime类型的,不是时间戳,你这方法能行吗?2013-01-06 11:05:07 字段数据是这样格式的

追答

这个就是正常的日期类型的处理,,

本回答被网友采纳
相似回答