n00*_*00b 163 mysql sql datetime
最好的方法是:
SELECT * FROM users WHERE created >= today;
Run Code Online (Sandbox Code Playgroud)
注意:created是一个日期时间字段.
Clo*_*eto 306
SELECT * FROM users WHERE created >= CURDATE();
Run Code Online (Sandbox Code Playgroud)
但我认为你的意思 created < today
Edm*_*mhs 72
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
Run Code Online (Sandbox Code Playgroud)
阅读更多:http: //www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
Sha*_*ngh 32
SELECT * FROM users WHERE created >= NOW();
Run Code Online (Sandbox Code Playgroud)
如果列是日期时间类型.
小智 15
如果'created'是日期时间类型
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
Run Code Online (Sandbox Code Playgroud)
CURDATE()也意味着'2013-05-09 00:00:00'
如果该列有索引并且在该列上应用了一个函数,则索引不起作用并且会发生全表扫描,从而导致查询速度非常慢。
错误查询;这将忽略列 date_time 上的索引
select * from users
where Date(date_time) > '2010-10-10'
Run Code Online (Sandbox Code Playgroud)
利用关于列索引创建类型的日期时间与当今/当前日期进行比较,可以使用下面的方法。
OP的解决方案:
select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')
Run Code Online (Sandbox Code Playgroud)
获取今天数据的示例:
select * from users
where
created >= CONCAT(CURDATE(), ' 00:00:00') AND
created <= CONCAT(CURDATE(), ' 23:59:59')
Run Code Online (Sandbox Code Playgroud)
或使用 BETWEEN 简称
select * from users
where created BETWEEN
CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')
Run Code Online (Sandbox Code Playgroud)
提示: 如果您必须对日期和时间进行大量计算或查询,那么将日期和时间保存在单独的列中非常有用。(分而治之)
标有答案的答案具有误导性。所陈述的问题是DateTime
,但所陈述的只是正义CURDATE()
。
在最短的和正确答案的情况是:
SELECT * FROM users WHERE created >= CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
484939 次 |
最近记录: |