2019.07.02 - SQL 日期时间换算 与 UTC时区转换,即dateadd(), date_add(), date()使用

使用场景

日期换算往往用于UTC时间+时区

MySQL

DateTime

  • mysql.DATE_ADD() 作用同于 sql.DATEADD()
  • 减去8小时的日期为2019-06-12
SELECT create_time, DATE_ADD(create_time, INTERVAL -8 HOUR) 
FROM anchor_training_log 
WHERE date(DATE_ADD(create_time, INTERVAL -8 HOUR)) = "2019-06-12";

TimeStamp

用法同上

存为BigData格式的时间戳(python.time.time())

  • FROM_UNIXTIME(秒时间戳, 格式):转换timestamp为datetime
  • FLOOR():向下取整
SELECT 
ctime/1000, FLOOR(ctime/1000), FLOOR(ctime/1000 + 60*60*24), 
FROM_UNIXTIME(FLOOR(ctime/1000),'%Y-%m-%d %H:%i:%s') as datetime_format, 
Date(FROM_UNIXTIME(FLOOR(ctime/1000),'%Y-%m-%d %H:%i:%s')) as date_part
FROM add_user_recharge_log 
WHERE
Date(FROM_UNIXTIME(FLOOR(ctime/1000 + 60*60*24),'%Y-%m-%d %H:%i:%s')) = "2019-06-05"
;

在这里插入图片描述

  • 把datetime转换成timestamp
SELECT 
now(), 
unix_timestamp(now())
FROM add_user_recharge_log 
limit 10
;

在这里插入图片描述

SQL Server

TimeStamp

  • DATEADD(hour,2, creat_time):增加两小时

  • DATE(creat_time):获取日期"2019-06-28"

  • Amazon RedShift示例

select 
e_target_jid, 
dateadd(hour,2,event_time) 
from app300049.event_p2p_call 
where date(dateadd(hour,2,event_time))='2019-06-28' 
limit 10;
  • 注意:通过psycopg2获取后,timestamp字段很可能变成datetime.datetime类型。

  • W3School参考:SQL Server DATEADD() 函数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值