一、日期 —> 时间戳

1.获取当前时间戳

  1. select unix_timestamp(); -- 获取当前时间戳

2.unix_timestamp 1 个参数

输入的时间戳格式必须为’yyyy-MM-dd HH:mm:ss’,如不符合则返回 NULL

  1. -- 例如:
  2. select unix_timestamp('2021-11-15 08:40:00') --1636936800
  3. select unix_timestamp('2021-11-15') --NULL

3.unix_timestamp 2 个参数

在使用 unix_timestamp 的时候,不想用默认的 yyyy-MM-dd HH:mm:ss 解析格式,可以自定义解析格式。
如果格式不符合则返回 NULL

  1. 例如:
  2. select unix_timestamp('2021-11-15','yyyy-MM-dd') --1636905600
  3. select unix_timestamp('2021-11-15 08:40:00','yyyy-MM-dd HH:mm:ss') --1636936800
  4. select unix_timestamp('2019-08-15','yyyy-MM-dd HH:mm:ss') --NULL

二、

1.获取当前日期

  1. select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss'); -- 格式化

2.时间戳(秒)转日期

from_unixtime() 将时间戳秒数转化为UTC时间,并用字符串表示,可通过format规定的时间格式,指定输出的时间格式,其中unixtime 是10位的时间戳值,而13位的所谓毫秒的是不可以的。

  1. select from_unixtime(1636905600,'yyyy-MM-dd HH:mm:ss');-- 2021-11-15 00:00:00

如果是 13 位的,先除以 1000 再转换。