Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」

Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」工作中遇到一个问题,A表中字段(DateTime1)的数据类型为DateTime,新建了一张表B的SMALLDATETIME1字段的数据来自A表的DateTime1但在将A表字段DateTime1导出到B表的SMALLDATETIME1字段时出现了以下错误后经过排查发现在原来是A表DateTime1字段的值有许多是"1753-01-0100:00:00.000",从而导致转换失败…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

工作中遇到一个问题,A表中字段(DateTime1)的数据类型为DateTime,新建了一张表B的SMALLDATETIME1字段的数据来自A表的DateTime1

但在将A表字段DateTime1导出到B表的 SMALLDATETIME1字段时出现了以下错误
Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」
后经过排查发现在原来是A表 DateTime1字段的值有许多是”1753-01-01 00:00:00.000″,从而导致转换失败
虽然知道了是什么原因导致的,但还是不太明白为什么”1753-01-01″无法转换成SMALLDATETIME类型

通过以下两篇文章知道DateTime与smalldatetime的差别(smalldatetime仅Sqlserver2005以上版本支持,2005不支持)

DateTime时间范围”1753-01-01 00:00:00.000″到”9999-12-31 23:59:59.997″     

smalldatetime时间范围”1900-01-01 00:00:00″到”2079-06-06 23:59:00″

 

datetime

Date and time data from January 1, 1753 through December 31, 9999, to an accuracy of one three-hundredth of a second (equivalent to 3.33 milliseconds or 0.00333 seconds). Values are rounded to increments of .000, .003, or .007 seconds, as shown in the table.

smalldatetime

Date and time data from January 1, 1900, through June 6, 2079, with accuracy to the minute. smalldatetime values with 29.998 seconds or lower are rounded down to the nearest minute; values with 29.999 seconds or higher are rounded up to the nearest minute.

Date and time types in SQL Server

Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」

Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」
Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」
Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」

--如果存储过程存在,则删除重建
IF EXISTS(select1from sys.objects where type='p' AND name='HTL_Convent_DateTime')
DROP PROCEDURE HTL_Convent_DateTime;
--必须加上Go,否则下面创建存储过程时会出现错误"MSSQL 'CREATE/ALTER PROCEDURE' 必须是查询批次中的第一个语句。"
GO
--对输入的日期进行各种日期格式转换
--HLT
--'2014-07-30 15:12:17'
CREATE PROCEDURE HTL_Convent_DateTime
@date_time DATETIME
AS
BEGIN
SELECT @date_time AS 'DateTime',
CAST (@date_time AS DATETIME2) AS 'DateTime2'
, CAST (@date_time AS DATE) AS 'DATE'
, CAST (@date_time AS TIME) AS 'TIME'
, CAST (@date_time AS datetimeoffset) AS 'datetimeoffset'
SELECT CAST (@date_time AS SMALLDATETIME)AS 'SMALLDATETIME';
END
GO

View Code

1900-01-01之前的日期无法从DateTime转换成smalldatetime, smalldatetime时间范围”1900-01-01 00:00:00″到”2079-06-06 23:59:00″

Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」
2076-06-06以后的日期也无法转换
Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」
在 smalldatetime时间范围内的日期
Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」
DECLARE @date DATETIME
SET @date='1753-01-01 00:00:00.000'
SELECT CAST (@date AS SMALLDATETIME);

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164636.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月27日 上午6:00
下一篇 2022年7月27日 上午6:16


相关推荐

  • GELU激活函数

    GELU激活函数论文 GAUSSIANERRO GELUS 项目 https github com hendrycks GELUsABSTRAC 本文提出了高斯误差线性单元 GELU 一个高性能的神经网络激活函数 GELU 激活函数为 x x x x x x 其中 x x x 为标准高斯累积分布函数 GELU 非线性根据输入的值来权重 而不是像 ReLUs x1x gt 0x1 x gt 0 x1x gt 0 那样通过符号来门输入 本文对 ReLU 和 ELU 激活的 G

    2026年3月19日
    1
  • S3C2440中断介绍

    S3C2440中断介绍1.1   S3C2440系统中断CPU和外设构成了计算机系统,CPU和外设之间通过总线进行连接,用于数据通信和控制,CPU管理监视计算机系统中所有硬件,通常以两种方式来对硬件进行管理监视:l  查询方式:CPU不停的去查询每一个硬件的当前状态,根据硬件的状态决定处理与否。好比是工厂里的检查员,不停的检查各个岗位工作状态,发现情况及时处理。这种方式实现起来简单,通常用在只有少量外设硬件的系

    2022年5月5日
    40
  • PHP永久激活码2021(最新序列号破解)

    PHP永久激活码2021(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    325
  • 【OpenGrok代码搜索引擎】三、OpenGrok常用命令

    【OpenGrok代码搜索引擎】三、OpenGrok常用命令写在前面为了防止一些无法预料的情况发生,建议在完成代码项目索引创建后对索引生成器(indexer)生成的配置文件configuration.xml进行备份。一、免配置方法可以使用一个OpenGrokDocker容器,该容器包含了OpenGrok配置环境,但需要注意的是,该容器不适合大型的代码项目。详细参考链接如下:opengrok/dockeratmaster·oracle/opengrok·GitHubDockerHub二、常用命令2…

    2022年4月29日
    129
  • 《周易》中的人生智慧_感悟人生的句子 励志

    《周易》中的人生智慧_感悟人生的句子 励志1.君子藏器于身,待时而动。——《易传·系辞传下》解释:君子蕴藏着弘大的才华在身上,等待时机的来临,而有所动。2.二人同心,其利断金。同心之言,其臭(xiu)如兰。——《易传·系辞传上》解释:二人同心,其锋利程度足以切断坚硬的金属。同心同德,精诚团结,心意齐同的人在一起谈话,给人的感觉就像嗅到芬芳的兰花香味一般。3.天行健;君子以自强不息。——《易传·象传上》解释:天道运行周而复始,永…

    2022年8月18日
    7
  • gallery的画廊效果

    gallery的画廊效果

    2022年3月2日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号