我有一列stocked
作为nvarchar(50)
包含这种格式的日期('yyyy/mm/dd')
,我想将它转换为日期,所以我可以做一些日期和时间来做进一步的比较。SQL服务器将字符串转换为日期列
什么,我到目前为止一直看到(当时很多关于石膏和转换),总是导致类似的东西:
“消息242,级别16,状态3,行1 将varchar数据类型转换为日期时间数据类型导致超出范围的值。“
我有一列stocked
作为nvarchar(50)
包含这种格式的日期('yyyy/mm/dd')
,我想将它转换为日期,所以我可以做一些日期和时间来做进一步的比较。SQL服务器将字符串转换为日期列
什么,我到目前为止一直看到(当时很多关于石膏和转换),总是导致类似的东西:
“消息242,级别16,状态3,行1 将varchar数据类型转换为日期时间数据类型导致超出范围的值。“
使用
ISDATE(表达式)
返回1,如果该表达式是有效的日期,时间,或日期时间值; 否则为0.
很有可能您的数据无法正确转换。您可以使用查询像下面来看看这个问题的数据(这个作品在SQL服务器2012及以上)
declare @tableName table(stocked nvarchar(50));
insert into @tableName values
('2017/12/31'),('2017/11/11'),('2017/11/13'),('2017/13/11');
SET DATEFORMAT ymd;
select
stocked,
TRY_PARSE(stocked as datetime)
from @tableName
where TRY_PARSE(stocked as datetime) is NULL;
Basicly我有我插入到SQL Server 2014的Excel表格,没有管理就转换数据迄今在插入,但我想这将是少于工作的插入方式比以后转换它的痛苦
第一个数据库设计错误:_I有一个列存储为nvarchar(50)包含dates_更改列是日期 – RiggsFolly
mysql或sql server? –
使用[STR_TO_DATE](https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date) –