毫秒级的 Unix 时间戳,将其转换为日期时间格式,报错,“将 expression 转换为数据类型 int 时出现算术溢出错误”

news2024/10/6 23:40:46

如果您有一个时间戳值为 1689217823000,表示毫秒级的 Unix 时间戳,您可以将其转换为日期时间格式。在 SQL Server 中,可以使用 DATEADD 和 CONVERT 函数来进行转换。
以下是将该时间戳值转换为日期时间格式的步骤:
DECLARE @timestamp bigint = 1689217823000;
DECLARE @datetime datetime;

SET @datetime = DATEADD(ms, @timestamp, '1970-01-01T00:00:00');
SET @datetime = DATEADD(HOUR, DATEDIFF(HOUR, GETUTCDATE(), GETDATE()), @datetime); -- 考虑到时区差异

SELECT @datetime AS converted_datetime;

在这个示例中,我们首先声明一个变量 @timestamp 并将其设置为时间戳值。然后,使用 DATEADD 函数将毫秒级的时间戳与 Unix 时间戳的起始日期(1970年1月1日)相加,得到转换后的日期时间值。
为了考虑到时区差异,我们还使用了 DATEADD 和 DATEDIFF 函数来调整日期时间值,确保其与当前时区所处的时间一致。
最后,通过 SELECT 语句返回转换后的日期时间值 @datetime。
请注意,时区是一个重要的因素,确保在转换过程中考虑到适当的时区调整。您可以根据您的实际时区情况进行相应的调整。

执行以上示例,报错,

 

“将 expression 转换为数据类型 int 时出现算术溢出错误”,如何解决?

让我们尝试另一种方法来解决这个问题。

1.首先,将时间戳值转换为 bigint 类型。假设您的时间戳值为 1689217823000:

DECLARE @timestamp bigint = 1689217823000;


2.然后,将转换后的时间戳值除以 1000,以获得秒级的时间戳:

SET @timestamp = @timestamp / 1000;


3.接下来,将转换后的秒级时间戳值添加到起始日期(1970年1月1日),以获得相应的日期时间值:

DECLARE @datetime datetime = DATEADD(ss, @timestamp, '1970-01-01T00:00:00');


4.最后,在考虑到时区差异的情况下,可以调整日期时间值。根据您所在的时区,可以使用以下代码来进行调整:

SET @datetime = DATEADD(HOUR, DATEDIFF(HOUR,GETUTCDATE(),CURRENT_TIMESTAMP), @datetime);

请注意,这里假设您所在的时区是当前系统时区。如果您的需求不是基于当前时区,而是根据特定的时区进行调整,则需要相应地修改上述代码。
最后,您可以使用 SELECT 语句检查转换后的日期时间值:
SELECT @datetime as converted_datetime;

此方法应该可以成功将时间戳值转换为日期时间格式,而不会出现算术溢出错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/767620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零开始学习 Java:简单易懂的入门指南(一)

Java基础语法 1. 人机交互1.1 什么是cmd?1.2 如何打开CMD窗口?1.3 常用CMD命令1.4 CMD练习1.5 环境变量 2. Java概述1.1 Java是什么?1.2下载和安装1.2.1 下载1.2.2 安装1.2.3 JDK的安装目录介绍 1.3 HelloWorld小案例1.3.1 Java程序开发运行…

【矩阵的基本操作】——MatLab基础

目录索引 矩阵的基本操作:转置:矩阵的拼接:*横拼:**竖拼:* 矩阵的索引:取元素:*end():* 取区域:逻辑判断:逻辑取值:find(): 矩阵的基本操作&#…

基于net core2.2的redis秒杀+数据持久化+数据恢复系列(2)

第一篇我们总结了秒杀的整个流程,本篇我们详细介绍下redis的秒杀实现,基于.net core2.2开发。 首先,需要安装redis,因为我在本地测试的,所以安装的windows版本的redis。redis分为服务端和客户端,这个redis…

了解Azido TAT,使用铜催化的叠氮化物反应修饰Tat肽,以下内容查看详细信息!

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ 【产品描述】 Azido-TAT中Tat肽已被证明具有优异的细胞穿透性,可以增强对特异性靶向疾病的诊断和 寡核苷酸的吸收。寡核苷酸通过点击化学与Tat(一种生物学上重要的细胞穿透肽)的共价连接…

❤ npm install 时报Error: spawn git ENOENT

❤ npm install 时报Error: spawn git ENOENT 原因: 主要是因为由于 git 的环境变量未设置导致,所以安装一下git 的环境变量就O了,步骤如下: 设置 >> 系统 >> 高级系统设置 >> 高级 >> 环境变量 >&g…

编写软件测试用例的方法,你知道多少种

1、等价类划分法 适用场景: 有数据输入的地方,就可以使用等价类划分法。如:输入框 测试思想: 从大量数据中划分范围(等价类),然后从每个范围中挑选代表数据,这些代表数据要能反应…

株洲科能冲刺上市:计划募资约6亿元,实控人为赵科峰、唐燕夫妇

7月17日,上海证券交易所披露的信息显示,已对株洲科能新材料股份有限公司(下称“株洲科能”)发出问询函。据贝多财经了解,株洲科能于2023年6月21日递交招股书,准备在科创板上市。 本次冲刺科创板上市&#x…

springboot+mybatis-plus实现自动建表

好长时间没输出了,最近工作上也是太多事,领导动不动就拍脑门,那叫一个酸爽~ 工作能力的提现不但是技术或解决问题的能力上,还体现在要能立刻满足领导的各种需求,不管是哪方面的需求,这样才能够拍上马屁&…

IDDR和ODDR

IDDR D:输入双倍速率数据(IOB输入,且数据在时钟的上升沿和下降沿都会发生切换,即一个时钟周期发送2bit数据) CE:时钟使能信号(高有效) C:时钟信号 S,R&#x…

STM32F4_串口 IAP

目录 前言 1. IAP简介 2. APP程序起始地址设置方法 3. 中断向量表的偏移量设置 4. 如何在MDK中生成 .BIN 文件 5. APP程序生成步骤 前言 IAP,即在应用编程。 1. IAP简介 IAP(In Application Programming)即 在应用编程,IAP…

Apache RocketMQ5.x-消息队列体验

Apache RocketMQ5.x-消息队列体验 Apache RocketMQ 是一款低延迟、高并发、高可用、高可靠的分布式消息中间件,由阿里开源,后由阿里捐赠给Apache基金会。 本次体验的目的是从技术角度验证一下在微服架构中,用Apache RocketMQ做为消息队列&am…

MQTT 订阅标识符详解

为什么需要订阅标识符 在大部分 MQTT 客户端的实现中,都会通过回调机制来实现对新到达消息的处理。 但是在回调函数中,我们只能知道消息的主题名是什么。如果是非通配符订阅,订阅时使用的主题过滤器将和消息中的主题名完全一致,…

chatglm微调

chatGML 看到 【【官方教程】ChatGLM-6B 微调:P-Tuning,LoRA,Full parameter】 【精准空降到 15:27】 https://www.bilibili.com/video/BV1fd4y1Z7Y5/?share_sourcecopy_web&vd_sourceaa8c13cff97f0454ee41e1f609a655f1&t927 记得看…

Java Mybatis02+oracle拓展

0目录 Mybatis 02Oracle 拓展 1.Mybatis 02 创建数据库和表 创建工程 实体类 util工具类 接口方法 Resource Mapper xml文件 配置文件 测试 加入模糊查询(根据姓名) 测试结果 2.ParameterType语法 实战 参数为对象 参数为…

Bean 作用域与生命周期

Bean 作用域与生命周期 ​ 对于 Spring 来说,核心操作对象就是存和取 Bean ,接下来就 Bean 的作用域与生命周期进行探讨。 文章目录 Bean 作用域与生命周期一、作用域的定义1.1、Bean 的6种作用域1.2、Bean作用域设置方法 二、Bean 的生命周期2.1、Bean…

【Java】Java实现微信小程序发送服务通知

文章目录 前言一、文档来源二、JAR包引入三、后端工作四、编写配置文件配置一:WxConfig配置二:WxProperties 五、代码编写 前言 在上个月接到一个需求,大概是需要计算一条数据的最大办理时间从而发送任务超期的微信小程序服务通知&#xff0…

怎么进行流程图制作?分享几种绘制方法

怎么进行流程图制作?流程图是一种图形化表示流程的图表,通常用于描述业务、计划或工作流程。它可以帮助人们更好地理解复杂的流程,并且提供了一种清晰的方法来记录和共享流程信息。下面介绍一些绘制流程图的方法,可以帮助我们快速…

4 自动微分 Automatic Differentitaion

计算图 Computational Graph 图上的每个节点代表一个中间值边事输入输出的关系 forward 求导 forward mode AD 上图中从前向后,一步一步计算每个中间值对 x1的偏导,那么计算到 v7,就得到了整个函数对于 x1的偏导。 有limitation 对一个参数…

echarts开发遇到的问题

echarts开发遇到的问题 1.rich富文本标签作为横向柱状图的刻度标签,其中带有icon。rich里不能写参数,只能写死?圆角设置无效? 解决办法: 自己写横向柱状图 散点图性能优化配置的临界点,最低优化数值必须…

超全整理,软件测试高频面试题(功能/接口/自动化测试-附答案)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 功能测试 1、双十…