簡體   English   中英

如何使用 SQL 從過去 24 小時中選擇記錄?

[英]How to select records from last 24 hours using SQL?

我正在尋找可用於檢索過去 24 小時內的記錄的where子句?

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)
SELECT * 
FROM table_name
WHERE table_name.the_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)

MySQL:

SELECT * 
FROM table_name
WHERE table_name.the_date > DATE_SUB(NOW(), INTERVAL 24 HOUR)

INTERVAL 可以是 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND

例如,在過去 10 分鍾內

SELECT * 
FROM table_name
WHERE table_name.the_date > DATE_SUB(NOW(), INTERVAL 10 MINUTE)

未指定哪個 SQL,SQL 2005 / 2008

SELECT yourfields from yourTable WHERE yourfieldWithDate > dateadd(dd,-1,getdate())

如果您使用的是 2008 年精度更高的日期類型,那么請改用新的 sysdatetime() 函數,同樣如果使用 UTC 時間在內部交換到 UTC 調用。

在 postgres 中,假設您的字段類型是時間戳:

select * from table where date_field > (now() - interval '24 hours');

如果考慮的時間戳是 UNIX 時間戳,則需要先將 UNIX 時間戳(例如 1462567865)轉換為 mysql 時間戳或數據

SELECT * FROM `orders` WHERE FROM_UNIXTIME(order_ts) > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
select ...
from ...
where YourDateColumn >= getdate()-1

你好,我現在已經過了很多時間,但我遇到了類似的問題,我想分享一下。

我有一個格式為 YYYY-MM-DD hh:mm:ss 的日期時間字段,我想訪問一整天,所以這是我的解決方案。

MySQL 中的函數 DATE():提取日期或日期時間表達式的日期部分。

SELECT * FROM `your_table` WHERE DATE(`your_datatime_field`)='2017-10-09'

有了這個,我在這一天得到了所有的行寄存器。

我希望它可以幫助任何人。

SELECT * 
FROM tableName 
WHERE datecolumn >= dateadd(hour,-24,getdate())

在 SQL Server 中(過去 24 小時):

SELECT  *
FROM    mytable
WHERE   order_date > DateAdd(DAY, -1, GETDATE()) and order_date<=GETDATE()

在 Oracle 中(過去 24 小時):

SELECT  *
FROM    my_table
WHERE   date_column >= SYSDATE - 24/24

如果出於任何原因,您有未來日期的行,您可以使用between ,如下所示:

SELECT  *
FROM    my_table
WHERE   date_column BETWEEN (SYSDATE - 24/24) AND SYSDATE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM