[英]Convert Date time format in SQL
我正在尝试将Aug/14/2014
转换为2014-08-14
但无法正常工作并抛出以下错误。 有人可以建议。
Update test
set UserDATE =convert(nvarchar(10), cast(UserDATE as datetime),105)
错误:将nvarchar数据类型转换为datetime数据类型导致值超出范围。
尝试用空格替换斜杠,并使用样式100转换为日期:
Update test
set UserDATE = convert(nvarchar(10), convert(date, replace(UserDate, '/', ' '), 100), 105)
但是,如果您将日期存储为字符串(我不建议这样做),则请使用ISO标准格式:YYYY-MM-DD或YYYYMMDD。 在SQL Server中,格式为112、120或121,而不是105。
SQL Server不了解该日期格式,因此cast
将无法解析它。
将其转换为格式'Aug 14 2014'
,可以使用格式109进行解析。
格式yyyy-mm-dd
的代码为120。
update
test
set
UserDATE = convert(
nvarchar(10),
convert(datetime, replace(UserDATE, '/', ' '), 109),
120
)
由于UserDATE
日期格式,您收到此错误。
删除/
以获取正确的日期格式。
cast(replace(UserDATE, '/', ' ') as datetime)
如果要在yyyy-mm-dd
使用日期,请使用120
而不是105
。
Update test
set UserDATE =convert(nvarchar(10), cast(replace(UserDATE, '/', ' ') as datetime),120)
根据白兰地技术公司的评论105是错误的样式。 实际上,2014年8月14日没有合适的风格。
因此,您的选择是:
将捕获“ Aug / 14/2015”的代码更改为“ Aug 14,2015”,然后使用样式107。
如果由于某种原因无法使用#1,则可能需要进行字符串操作并将“ Aug / 14/2015”转换为“ Aug 14,2015”,然后使用样式107
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.