我正在寻找可用于检索过去24小时记录的where
子句?
答案 0 :(得分:500)
在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
在Redshift
:
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)
答案 1 :(得分:94)
SELECT *
FROM table_name
WHERE table_name.the_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
答案 2 :(得分:20)
MySQL:
SELECT *
FROM table_name
WHERE table_name.the_date > DATE_SUB(NOW(), INTERVAL 24 HOUR)
INTERVAL可以是年,月,日,小时,分钟,第二
例如,在最后10分钟
SELECT *
FROM table_name
WHERE table_name.the_date > DATE_SUB(NOW(), INTERVAL 10 MINUTE)
答案 3 :(得分:8)
未指定哪个SQL,SQL 2005/2008
SELECT yourfields from yourTable WHERE yourfieldWithDate > dateadd(dd,-1,getdate())
如果您使用的是2008年增加的准确度日期类型,那么请使用新的sysdatetime()函数,如果使用UTC时间内部交换到UTC调用,则同样如此。
答案 4 :(得分:7)
在postgres中,假设您的字段类型是时间戳:
从表格中选择*,其中date_field> (now() - interval '24 hour');
答案 5 :(得分:4)
如果考虑的时间戳是UNIX时间戳 您需要先将UNIX时间戳(例如1462567865)转换为mysql时间戳或数据
SELECT * FROM `orders` WHERE FROM_UNIXTIME(order_ts) > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
答案 6 :(得分:3)
select ...
from ...
where YourDateColumn >= getdate()-1
答案 7 :(得分:2)
您好,我现在已经过了很长时间,但是我遇到了类似的问题,我想分享。
我有一个日期时间字段,格式为YYYY-MM-DD hh:mm:ss,我想访问一整天,所以这是我的解决方案。
MySQL中的函数DATE():提取日期或日期时间表达式的日期部分。
SELECT * FROM `your_table` WHERE DATE(`your_datatime_field`)='2017-10-09'
用这个我今天得到所有的行记录。
我希望能帮到任何人。
答案 8 :(得分:1)
SELECT *
FROM tableName
WHERE datecolumn >= dateadd(hour,-24,getdate())
答案 9 :(得分:1)
在SQL Server中(过去24小时):
SELECT *
FROM mytable
WHERE order_date > DateAdd(DAY, -1, GETDATE()) and order_date<=GETDATE()
答案 10 :(得分:0)
在Oracle中(过去24小时):
Option Explicit
Sub Test()
Dim i As Variant
Dim rng1 As Range
Dim rng2 As Range
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
Set rng1 = ws.Range("af10")
Set rng2 = ws.Range("af11:af27")
rng1.Copy
rng2.PasteSpecial xlPasteFormulas
End Sub
万一出于某种原因,如果您有带有未来日期的行,则可以使用之间的,如下所示:
SELECT *
FROM my_table
WHERE date_column >= SYSDATE - 24/24