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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • landsat8与sentinel2波段对比

    landsat8与sentinel2波段对比landsat8与sentinel2波段对比Landsat8波段对比哨兵2号,通常Landsat8OLI使用7、5、2或7、5、3,哨兵2号相对应的为12、8、2。Landsat7ETM+通常采用7、4、1。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计,将会带来全新…

    2022年7月23日
    11
  • SQLiteOpenHelper 操作不成功

    SQLiteOpenHelper 操作不成功

    2022年2月5日
    32
  • js 全局变量优点和缺点

    js 全局变量优点和缺点全局变量的优点:可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。全局变量的缺点:(1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。(2)全局变量破坏了函数的封装性能。函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立

    2022年6月9日
    65
  • UCI数据集整理(附论文常用数据集)

    UCI数据集整理(附论文常用数据集)摘要:UCI数据集作为标准测试数据集经常出现在许多机器学习的论文中,为了更方便使用这些数据集有必要对其进行整理,这里整理了论文中经常出现的数据集,并详细介绍如何使用MATLAB将数据集文件整理成自己需要的格式以及如何使用数据集文件。要点如下UCI数据集介绍用程序整理数据集如何使用数据集文件点击跳转至UCI数据集下载页1.前言UCI数据集是一个常用的机器…

    2022年6月28日
    44
  • mysql 按位取反_按位与,按位异或,按位取反「建议收藏」

    mysql 按位取反_按位与,按位异或,按位取反「建议收藏」**&按位与,相同的不变,否则都算成0|按位或,^按位异或,不相同的都算成1**PHP按位与或(^、&)运算也是很常用的逻辑判断类型,有许多的PHP新手们或许对此并不太熟悉,今天结合一些代码对PHP与或运算做些介绍,先说明下,在PHP中,按位与主要是对二进制数操作:$a=1;$b=2;$c=$a^b;echo$c//3?>十进制1换算成二进制为:0…

    2022年8月14日
    9
  • 如何打开sln文件并显示窗口_在本机打开别人的sln文件[通俗易懂]

    如何打开sln文件并显示窗口_在本机打开别人的sln文件[通俗易懂]sln:在开发环境中使用的解决方案文件。它将一个或多个项目的所有元素组织到单个的解决方案中。此文件存储在父项目目录中.解决方案文件,他是一个或多个.proj(项目)的集合呵呵,今天没带书,就去网上找了个ASP.NET的源代码,叫简单实用的BLOG,一开始在web.config里捣鼓了半天,终于能把程序运行起来了,一看是MVP刘巍~真是意外啊。去看了看他的博客,言及两年来如何如何,及参加会议云云,想…

    2022年6月12日
    50

发表回复

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

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