MySQL—数仓ETL开发中常用到的日期函数

在数据仓库ETL开发中,当以增量的方式进行数据同步时,会将数据表中的时间字段作为增量字段获取增量数据。对于MySQL数据库来说,总结了以下日期表示以及需要注意的问题。

一、需要注意的问题:

查看MySQL数据库的时区,以下MySQL的时间是utc时间,与北京时间相差8个小时,所以在进行ETL开发时,要将表字段转换成北京时间(在utc时间基础上加8个小时即为北京时间)

MySQL—数仓ETL开发中常用到的日期函数_第1张图片

二、utc时间转为北京时间的函数:

convert_tz(dt,from_tc,to_tz)

(1)对于datetime类型的时间字段来说:

select CONVERT_TZ("2019-11-28 02:32:04","+00:00","+08:00") as 北京时间

MySQL—数仓ETL开发中常用到的日期函数_第2张图片

(2)对于时间戳类型的时间字段来说:

select FROM_UNIXTIME(1574905952) as utcTime, CONVERT_TZ(FROM_UNIXTIME(1574905952),"+00:00","+08:00") as 北京时间;

三、MySQL常用的日期函数集锦

select unix_timestamp(now());               #获取系统当前时间的时间戳 1574906761
select now();                               #获取系统当前时间 2019-11-28 10:05:52
select CURRENT_DATE                         #获取系统当前时间 2019-11-28
select CURRENT_DATE()                       #获取系统当前时间 2019-11-28
select curdate()                            #获取系统当前时间 2019-11-28
select date_sub(curdate(),interval 1 day)   #获取昨天时间 2019-11-27 数仓中常用
select date_format(now(),'%Y-%m-%d')        #用于以不同的格式显示日期/时间数据 2019-11-28 数仓中常用

 

你可能感兴趣的:(MySQL,数据仓库,MySQL,数仓,ETL,数据库)