从dd/mm/yyyy字符串SQL转换为日期
我目前有一个格式为从dd/mm/yyyy字符串SQL转换为日期,sql,datetime,type-conversion,Sql,Datetime,Type Conversion,我目前有一个格式为dd/mm/yyyy的字符串,我正试图将其转换为SQL中的日期时间变量 我当前正在使用以下SQL语句: CONVERT(datetime, ProposedTransferDate.AttributeValue, 101) 但我有一个错误: 将varchar数据类型转换为datetime数据类型导致值超出范围 谢谢 克里斯你应该使用面具103: CONVERT(datetime,ProposedTransferDate.AttributeValue, 103) 从中,我们发
dd/mm/yyyy
的字符串,我正试图将其转换为SQL中的日期时间变量
我当前正在使用以下SQL语句:
CONVERT(datetime, ProposedTransferDate.AttributeValue, 101)
但我有一个错误:
将varchar数据类型转换为datetime数据类型导致值超出范围
谢谢
克里斯你应该使用面具
103
:
CONVERT(datetime,ProposedTransferDate.AttributeValue, 103)
从中,我们发现掩码103具有以下格式:
年月日(英国/法国标准)
使用字符串操作将其转换为
yyyy-mm-dd
格式:
CAST(
RIGHT(ProposedTransferDate.AttributeValue,4) +
'-' +
RIGHT(LEFT(ProposedTransferDate.AttributeValue,5),2) +
'-' +
LEFT(ProposedTransferDate.AttributeValue,2)
AS DATETIME)
该转换错误是由于您的日期列不是标准且唯一的SQL/ISO日期格式,即YYYY-MM-DD。您的日期格式可能是MM/DD/YYYY,因此,如果您的登录默认语言为UK,则表示日期格式将类似于DD/MM/YYYY。因此,在转换之前,您需要更改SQL SERVER中的默认语言 乙二醇 你也可以用另一种方法
SET LANGUAGE 'british english'
select DATEPART(dd,'2-3-2012')+ '/' + DATEPART(mm,'2-3-2012')+ '/' + DATEPART(yy,'2-3-2012')
或
试试这个:
SELECT convert(datetime, '23/10/2016', 103)
结果:
2016-10-23 00:00:00.000标记您正在使用的dbms,
CONVERT()
是特定于产品的功能。
SET LANGUAGE 'british english'
select CONCAT(DATEPART(dd,'2-3-2012'), '/' , DATEPART(mm,'2-3-2012'), '/' ,DATEPART(yy,'2-3-2012'))
SELECT convert(datetime, '23/10/2016', 103)