根据保存的数据类型不同,有不同的处理方式,常见的有两种保存形式:
- 时间戳int
- 日期时间datetime
时间戳
早期一直在使用的方式,缺点:
- 在数据库中不直观
- 查询的时候涉及到转换
例如在查询的时候需要将日期时间转化为时间戳:
where created_at < UNIX_TIMESTAMP('2018-9-28 00:00:00')
UNIX_TIMESTAMP()可以直接表示当前的时间戳
时间戳转化为日期时间:
SELECT FROM_UNIXTIME(875996580)
FROM_UNIXTIME第二个参数用于指定日期格式,例如:
SELECT SUM(price), FROM_UNIXTIME(created_at, '%m%d') as day FROM table GROUP BY day
... WHERE FROM_UNIXTIME(created_at, '%Y') = '2018'
常用的格式是这样的:%Y%m%d%H%i%s
日期时间
可以直接进行比较
格式转化:
DATE_FORMAT()
SELECT SUM(price), DATE_FORMAT(created_at, '%m%d') as day FROM table GROUP BY day