直到今天,当我使用MySQL并且需要执行日期/时间的操作时我使用带有unix时间戳的int列并且没有问题,但是今天在阅读了一些指南之后我决定默认使用"current_timestamp"测试时间戳列.
所以我感兴趣的是如何按列选择上个月的数据,其中信息是"2012-09-07 00:23:30"格式?也许有一些棘手的问题会从本月初开始给我数据(不是过去30天,而是从09-01 00:00:00到今天)?
Ari*_*iel 17
这将给你上个月:
WHERE dateColumn BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW();
Run Code Online (Sandbox Code Playgroud)
这从月初开始:
WHERE dateColumn BETWEEN STR_TO_DATE('2012-09-01', '%Y-%m-%d') AND NOW();
Run Code Online (Sandbox Code Playgroud)
BETWEEN没什么特别的,它只是一个捷径
dateColumn <= ... AND dateColumn >= ....
Run Code Online (Sandbox Code Playgroud)
嗯,我想实际上并不需要NOW()比较,因为所有记录都将在此之前.
所以这样做:
WHERE dateColumn >= STR_TO_DATE('2012-09-01', '%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)
当月的动态开始:
WHERE dateColumn >= CURDATE() - INTERVAL DAY(CURDATE())-1 DAY
Run Code Online (Sandbox Code Playgroud)
所有这一切都是从当前日期中提取当月的日期,然后从中扣除那么多天.
| 归档时间: |
|
| 查看次数: |
18514 次 |
| 最近记录: |