SQL处理时间戳时如何解决时区问题实例详解
2023-06-13 09:20:04 时间
1.问题及解决办法
select [column(s),]
(timestamp+8*3600)%86400/3600 as hour
[from table]
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
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 SQL处理时间戳时如何解决时区问题实例详解
(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
到此这篇关于SQL处理时间戳时如何解决时区问题的文章就介绍到这了,更多相关SQL解决时区问题内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 SQL处理时间戳时如何解决时区问题实例详解
相关文章
- coco数据集语义分割_实例分割模型
- 教你如何在你的程序或网站中接入聊天机器人Chat(内附实例分享)
- Oracle数据库中添加字段的SQL操作(oracle添加字段sql)
- MySQL动态SQL语句:构建数据库的基石(mysql动态sql语句)
- MySQL 建表SQL精选实例(mysql建表sql)
- pl/sql探索Oracle数据库:SQL PL/SQL(oraclesql)
- MySQL创建视图的SQL语句实例分析(mysql创建视图的sql语句)
- Oracle中提高SQL性能的静态SQL优化(oracle静态sql)
- MySQL 嵌入式 SQL 的特点和应用场景分析(mysql嵌入式sql)
- SQL连接MySQL:从零开始(sql连接mysql)
- 优化MySQL数据库性能优化:克服耗时SQL问题(mysql耗时sql)
- serverMySQL 与 SQL Server 的比较与选择(mysql 和 sql)
- Orcle 解决SQL查询问题的神器(.sql oracle)
- MySQL中遇到的SQL语句陷阱(mysql中sql语句坑)
- MySQL中实现动态SQL的方法与技巧(mysql中动态sql)
- 掌握 Oracle 中的 SQL 技能(oracle 中的sql)
- Redis VS SQL 哪种更适合解决您的问题(redis 适合sql吗)
- Oracle SQL基线检测实现安全性提升(oracle sql基线)
- 解决Oracle SQL乱码问题(oracle sql乱码)
- SQL语句练习实例之三——平均销售等待时间
- SQL语句练习实例之五WMS系统中的关于LIFO或FIFO的问题分析
- C#简单的加密类实例
- C#针对xml基本操作及保存配置文件应用实例
- JS简单操作select和dropdownlist实例
- php操作mongoDB实例分析
- python静态方法实例