Kin*_*Kin 2 mysql sql datetime
我在sql中不是很好,所以我想知道这些陈述是否适用于选择curent和之前的小时,日和月?
DATE_SUB(NOW(), INTERVAL '1' HOUR) <= ADDTIME(Datestamp, Timestamp)
DATE_SUB(NOW(), INTERVAL '1' DAY) <= ADDTIME(Datestamp, Timestamp)
DATE_SUB(NOW(), INTERVAL '1' MONTH) <= ADDTIME(Datestamp, Timestamp)
Run Code Online (Sandbox Code Playgroud)
例如,如果现在14:49那么我需要计算:
DATE_SUB(NOW(), INTERVAL '0' HOUR) <= ADDTIME(Datestamp, Timestamp)
DATE_SUB(NOW(), INTERVAL '1' HOUR) <= ADDTIME(Datestamp, Timestamp)
从白天和飞蛾都是一样的,例如,如果当前是2013-01-08,那么我需要计算2013-01-08和2013-01-07
以下是如何使用MySQL日期函数创建日期的示例:
SELECT
NOW() AS CurrentDateTime,
DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00') AS CurrentHour,
DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00') - INTERVAL 1 HOUR AS PreviousHour,
CURDATE() AS CurrentDate,
CURDATE() - INTERVAL 1 DAY AS PreviousDate,
DATE_FORMAT(NOW(), '%Y-%m-01') AS CurrentMonth,
DATE_FORMAT(NOW(), '%Y-%m-01') - INTERVAL 1 MONTH AS PreviousMonth
Run Code Online (Sandbox Code Playgroud)
输出:
CurrentDateTime: 2013-01-08 21:00:51
CurrentHour: 2013-01-08 21:00:00
PreviousHour: 2013-01-08 20:00:00
CurrentDate: 2013-01-08
PreviousDate: 2013-01-07
CurrentMonth: 2013-01-01
PreviousMonth: 2012-12-01
Run Code Online (Sandbox Code Playgroud)
以下是示例用法:
-- SELECT PREVIOUS HOUR ROWS
SELECT *
FROM table1
WHERE ADDTIME(Datestamp, Timestamp) >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00') - INTERVAL 1 HOUR
AND ADDTIME(Datestamp, Timestamp) < DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00')
-- SELECT CURRENT HOUR ROWS
SELECT *
FROM table1
WHERE ADDTIME(Datestamp, Timestamp) >= DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00')
Run Code Online (Sandbox Code Playgroud)
同样适用于其他情况.