我正在寻找一个where子句,可用于检索过去24小时的记录?
当前回答
没有指定SQL 2005 / 2008
SELECT yourfields from yourTable WHERE yourfieldWithDate > dateadd(dd,-1,getdate())
如果您使用的是2008年增加的精度日期类型,则使用新的sysdatetime()函数,如果使用UTC时间内部交换到UTC调用,同样如此。
其他回答
在MySQL中:
SELECT *
FROM mytable
WHERE record_date >= NOW() - INTERVAL 1 DAY
在SQL Server中:
SELECT *
FROM mytable
WHERE record_date >= DATEADD(day, -1, GETDATE())
在Oracle中:
SELECT *
FROM mytable
WHERE record_date >= SYSDATE - 1
在PostgreSQL:
SELECT *
FROM mytable
WHERE record_date >= NOW() - '1 day'::INTERVAL
红移:
SELECT *
FROM mytable
WHERE record_date >= GETDATE() - '1 day'::INTERVAL
SQLite:
SELECT *
FROM mytable
WHERE record_date >= datetime('now','-1 day')
在MS Access中:
SELECT *
FROM mytable
WHERE record_date >= (Now - 1)
在postgres中,假设你的字段类型是时间戳:
Select * from date_field > (now() - interval '24小时');
MySQL:
SELECT *
FROM table_name
WHERE table_name.the_date > DATE_SUB(NOW(), INTERVAL 24 HOUR)
时间间隔可以是年、月、日、小时、分、秒
比如,在最后十分钟
SELECT *
FROM table_name
WHERE table_name.the_date > DATE_SUB(NOW(), INTERVAL 10 MINUTE)
你好,我现在从原来的帖子过去了很多时间,但我有一个类似的问题,我想分享。
我得到了一个datetime字段,格式为YYYY-MM-DD hh:mm:ss,我想访问一整天,所以这是我的解决方案。
函数DATE(),在MySQL:提取日期或日期时间表达式的日期部分。
SELECT * FROM `your_table` WHERE DATE(`your_datatime_field`)='2017-10-09'
这一天我得到了所有的行寄存器。
我希望它能帮助到任何人。
如果考虑的时间戳是UNIX时间戳 您需要首先将UNIX时间戳(例如1462567865)转换为mysql时间戳或数据
SELECT * FROM `orders` WHERE FROM_UNIXTIME(order_ts) > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
推荐文章
- GROUP BY with MAX(DATE)
- 删除id与其他表不匹配的sql行
- 如何将python datetime转换为字符串,具有可读格式的日期?
- 等价的限制和偏移SQL Server?
- 在c#中创建一个特定时区的DateTime
- 为什么我不能在DELETE语句中使用别名?
- 在SQL Server Management Studio中保存带有标题的结果
- "where 1=1"语句
- 如何选择一个记录和更新它,与一个单一的查询集在Django?
- 多语句表值函数vs内联表值函数
- 如何从Oracle的表中获取列名?
- NOLOCK提示在SELECT语句中的作用
- 如何减去X天从一个日期对象在Java?
- SQL OVER()子句-它什么时候有用,为什么有用?
- 如果字段在MySQL中为空,则返回0