转换此nvarchar到目前为止有困难:我想将'2021-02-01 00:00:00.0000000‘nvarchar转换为2021-02-01日期。
DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000'
CONVERT(date, @var, 103)
我已经使用了这个转换函数,但是我得到了:
从字符串转换日期和/或时间时,转换失败
错误。对如何解决这个问题有什么帮助吗?
发布于 2022-01-25 23:42:48
尝试120
而不是103
。103
需要一个格式为d/m/y
的字符串。
DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000';
SELECT CONVERT(date, @var, 120);
结果(db<>fiddle):
2021-02-01
另外:
nvarchar
?日期不需要支持Unicode字符。更多关于约会的内容:负责任地约会
发布于 2022-01-25 23:05:19
您可以直接将格式设置为CAST
或DATETIME2
类型。
DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000'
DECLARE @date date = CAST(@var AS DATE);
SELECT @var as var, @date as [date];
甚至没有格式号的转换。
DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000'
DECLARE @datetime2 datetime2 = CONVERT(DATETIME2, @var);
SELECT @var as var, @datetime2 as [datetime2];
但是对于CAST
或CONVERT
,则需要将其截断为DATETIME
。
默认格式编号为121 (ODBC规范,毫秒)
DECLARE @var nvarchar(255) = '2021-02-01 00:00:00.0000000'
DECLARE @datetime datetime = CONVERT(datetime, LEFT(@var, 23), 121);
SELECT @var as var, @datetime as [datetime];
https://stackoverflow.com/questions/70856771
复制相似问题