SQL处理时间戳时如何解决时区问题实例详解

作者:小白修炼晋级中 时间:2024-01-22 15:23:11 

1.问题及解决办法

(1)问题:由于存储的时间戳是时间戳为GMT(格林尼治标准时间),以秒储存,但由于需要获取的是北京时间,存在时区问题。如何获取北京时区的时间日期?

(2)通过上网查找了解决办法,有一堆办法,有说连接时设置地区,都很复杂,本人没成功。尝试成功过的方法如下:

①方法一:在查询前设置时区,输入“set time_zone='+08:00';”

但这个方法存在弊端,不是非常通用,比如需要用python调用数据库查询时会报错。

②方法二:直接用公式将北京时区的时差相加,公式为:

(timestamp+8*3600)

说明:timestamp为时间戳,可为数字串也可为存在时间戳的字段。3600为一小时的秒数。该方法可以非常通用。

2.时区差相加公式的实例

(1)将时间戳转为小时(0-24小时)。其中timestamp为时间戳。

查询语句
select [column(s),]
(timestamp+8*3600)%86400/3600 as hour
[from table]

说明:时间戳是以秒8*3600表示北京时区的时差,86400=24*3600表示1天的秒数,“(timestamp+8*3600)%86400”中“%”取余数,余数则为当天时间点的秒数。3600是一小时的秒数,用当天时间点的秒数除以3600表示小时。

补充:SQL 关于时区的处理案例

设置时间偏移:SWITCHOFFSET(StopageStartTime,'+08:00')

时间转换:CONVERT(VARCHAR(19),SWITCHOFFSET(StopageStartTime,'+08:00'),121)

SELECT CONVERT(VARCHAR(19),SWITCHOFFSET(StopageStartTime,'+08:00'),121) AS StopageStartTime,
       CONVERT(VARCHAR(19),SWITCHOFFSET(StopageEndTime,'+08:00'),121) AS StopageEndTime,StopageType,AccidentReason_Preventive
                           ,EquipmentCode
                           FROM dbo.EquipmentDetection_Item
                           WHERE  
                            CONVERT(VARCHAR(19),SWITCHOFFSET(StopageStartTime,'+08:00'),121)>=@startTime

来源:https://blog.csdn.net/weixin_50853979/article/details/124879563

标签:sql,时间戳,时区
0
投稿

猜你喜欢

  • Pytest mark使用实例及原理解析

    2021-02-27 14:30:11
  • python如何实现视频转代码视频

    2022-09-09 16:16:56
  • Python与C语言分别完成排序流程

    2023-04-19 08:26:24
  • python实现根据给定坐标点生成多边形mask的例子

    2022-03-22 14:40:15
  • Python 中的装饰器实现函数的缓存(场景分析)

    2022-07-30 01:37:08
  • Python列表list内建函数用法实例分析【insert、remove、index、pop等】

    2022-01-13 10:18:24
  • python函数enumerate,operator和Counter使用技巧实例小结

    2022-08-09 07:02:32
  • javascript弹出窗口总结

    2009-08-21 12:40:00
  • Pandas 对Dataframe结构排序的实现方法

    2021-11-26 09:06:48
  • Go语言库系列之flag的具体使用

    2024-04-26 17:19:37
  • Opencv+Python实现图像运动模糊和高斯模糊的示例

    2022-08-06 12:25:19
  • 用JS访问操作iframe框架里的dom

    2008-11-10 13:05:00
  • VBScript中的eval()函数

    2008-04-09 13:41:00
  • Python内置数据结构列表与元组示例详解

    2021-08-17 21:28:14
  • c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)

    2024-01-13 08:12:32
  • python爬虫实现爬取同一个网站的多页数据的实例讲解

    2021-04-11 13:52:09
  • Python爬虫自动化爬取b站实时弹幕实例方法

    2023-03-21 04:45:42
  • matplotlib事件处理基础(事件绑定、事件属性)

    2023-02-02 19:34:32
  • 也谈access数据库的防下载保护

    2007-08-28 13:01:00
  • Linux安装Python虚拟环境virtualenv的方法

    2022-07-07 00:33:36
  • asp之家 网络编程 m.aspxhome.com