如何高效地获取所有日期时间列值在昨天 00:00:00
到昨天 23:59:59
之间的记录?
SQL:
CREATE TABLE `mytable` (
`id` BIGINT,
`created_at` DATETIME
);
INSERT INTO `mytable` (`id`, `created_at`) VALUES
(1, '2016-01-18 14:28:59'),
(2, '2016-01-19 20:03:00'),
(3, '2016-01-19 11:12:05'),
(4, '2016-01-20 03:04:01');
如果在2016年1月20日的任何时间运行此查询,则我希望返回的只有第2行和第3行。
SELECT @@global.time_zone, @@session.time_zone;
命令,两个值都返回SYSTEM
。当我在数据库系统上检查时区时,它是 UTC,而我的时区是 EST。最终查询将仅从远程系统上的脚本运行,所以我想这应该不是问题。 - eComEvoDATE(CONVERT_TZ(created_at, '+00:00', '-05:00')) = DATE(CONVERT_TZ(NOW(), '+00:00', '-05:00') - INTERVAL 1 DAY)
- eComEvoSELECT DATE(NOW() - INTERVAL 1 DAY)
;) - miken32DATE(created_at) = DATE(CONVERT_TZ(NOW(), '+00:00', '-05:00') - INTERVAL 1 DAY)
- eComEvo