识别日期格式 SQL 服务器
Identify date format SQL Server
我有很多带有时间戳的列,格式如下 nvarchar
'2016-11-22T20:16:32.573000Z' 或 'yyyy-MM-ddThh:mm:ss.[sss]Z' 我需要将列类型转换为日期和时间格式。
我知道有很多关于使用 CAST
或 CONVERT
在 SQL 服务器 (Azure) 中将字符串转换为日期时间的问题。但我似乎无法确定正确的风格:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
格式看起来像 ISO 8601 风格,但例如样式编号 126 和 127 不起作用。那么应该使用哪种样式才能成功转换列呢?
该格式是明确的,但精度比 datetime
所能容纳的要多。
CONVERT(datetime2,'2016-11-22T20:16:32.573000Z')
在不指定样式的情况下工作正常,无论如何你应该在新工作中避免使用 datetime
。 (此时指定样式 126 或 127 也可以,但不必要)
不知道包含类似内容的更新 SQL 语句是否有助于填充新的日期字段和新的时间字段:
SUBSTRING(MyLongDateTimeStringField,1,10) AS MyNewDateField,
SUBSTRING(MyLongDateTimeStringField,12,8) AS MyNewTimeField
我有很多带有时间戳的列,格式如下 nvarchar
'2016-11-22T20:16:32.573000Z' 或 'yyyy-MM-ddThh:mm:ss.[sss]Z' 我需要将列类型转换为日期和时间格式。
我知道有很多关于使用 CAST
或 CONVERT
在 SQL 服务器 (Azure) 中将字符串转换为日期时间的问题。但我似乎无法确定正确的风格:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
格式看起来像 ISO 8601 风格,但例如样式编号 126 和 127 不起作用。那么应该使用哪种样式才能成功转换列呢?
该格式是明确的,但精度比 datetime
所能容纳的要多。
CONVERT(datetime2,'2016-11-22T20:16:32.573000Z')
在不指定样式的情况下工作正常,无论如何你应该在新工作中避免使用 datetime
。 (此时指定样式 126 或 127 也可以,但不必要)
不知道包含类似内容的更新 SQL 语句是否有助于填充新的日期字段和新的时间字段:
SUBSTRING(MyLongDateTimeStringField,1,10) AS MyNewDateField,
SUBSTRING(MyLongDateTimeStringField,12,8) AS MyNewTimeField