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,时间戳,时区
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Pytest mark使用实例及原理解析
2021-02-27 14:30:11
python如何实现视频转代码视频
2022-09-09 16:16:56
![](https://img.aspxhome.com/file/2023/6/133266_0s.jpg)
Python与C语言分别完成排序流程
2023-04-19 08:26:24
![](https://img.aspxhome.com/file/2023/5/107855_0s.png)
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
![](https://img.aspxhome.com/file/2023/2/86442_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/9/66349_0s.jpg)
用JS访问操作iframe框架里的dom
2008-11-10 13:05:00
![](https://img.aspxhome.com/file/UploadPic/200811/10/1-55s.gif)
VBScript中的eval()函数
2008-04-09 13:41:00
Python内置数据结构列表与元组示例详解
2021-08-17 21:28:14
![](https://img.aspxhome.com/file/2023/1/78801_0s.png)
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