日期时间常用格式化方法
日常工作中接触到的时间类型一般而言有4种,分别是:
- unix时间戳【从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒】:
–1595496374
(1单位1秒)
–1595496442071
(一单位1ms,1ms=1/1000 s) - 日期:
2020-07-23
- 时间:
17:30(.155)
- 日期+时间:
2020-07-23 17:31:33(.155)
下面简单讲一些它们相互转化的方法,本文主要针对mysql语法,其他的语法可能会略有不同。
(ps:关于保留毫秒的做法,目前传统的函数不能一步到位,得根据具体情况具体分析,我会在最后讲这个情况,不过也只是提一下自己的想法~)
1 日期(+时间)→unix时间戳
常用的函数是unix_timestamp,可以传入1-2个参数:
- 如果格式是为"yyyy-MM-dd HH:mm:ss"的日期,例如下面代码所示,则不需要传入额外的参数,函数会自动将其转化为对应的unix时间戳:
select unix_timestamp('2020-07-23 17:30:23')
- 如果格式区别于以上,例如
2020-07-23
,2020/7/23
或者少了一个秒的2020-07-23 17:30
,都需要另外传入一个时间pattern,否则会输出NULL:
select unix_timestamp('2020-07-23'