繁体   English   中英

将char数据类型转换为datetime数据类型会导致超出范围的datetime值

[英]he conversion of a char data type to a datetime data type resulted in an out-of-range datetime value

我正在执行以下查询,但出现以下错误。

INSERT INTO [dbo].[Calendar]  ([ID],[Year],[Quarter],[Week],[Stdate],[EdDate])
VALUES (680, 2020, 1, 1, convert(datetime,'30-06-2019 00:00:00 AM'), convert(datetime,'06-07-2019 23:59:00 PM'));

错误信息:

从char数据类型到DateTime数据类型的转换导致超出范围的DateTime值。

在查询中将日期从dd-MM格式更改为MM-dd格式

convert(datetime,'06-30-2019 00:00:00 AM')

不要使用Am PM:

选择转换(日期时间,'06 -07-2019 23:59:00')

我们可以有不同类型的转化:

  • 尝试解析

    它将字符串数据类型转换为目标数据类型(日期或数字)

这是一个例子:

Declare @fakeDate as varchar(10);
Declare @realDate as varchar(10);
set @fakeDate = 'I am not a date';
set @realdate = '13/09/2015';

select try_parse (@fakeDate as DATE); --Null  because the parsing fails
select try_parse (@realDate as DATE); --Null due to type mismatch
select try_parse (@realDate as DATE using 'FR-FR'); --13/09/2015
  • 尝试转换

它将值转换为指定的数据类型,如果转换失败,则返回NULL语法为:

try_convert(data_type[(length)], expression[,style])
  • 兑换

它将表达式从一种类型转换为另一种类型,例如:

select convert(varchar(20),GetDate,108);

希望它可以帮助您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM