将Sitecore nvarchar日期表示转换为SQL日期时间

时间:2016-10-12 14:05:38

标签: sql sql-server datetime sitecore

Sitecore将所有字段值存储为nvarchars。我们希望将其日期表示转换为SQL日期时间,但无法在MSDN上找到匹配的样式:

https://msdn.microsoft.com/en-GB/library/ms187928.aspx

日期格式为yyyymmddThhmmss,例如:

20161007T000000
00010101T000000

这可以使用SQL CONVERT吗? - 还是需要手动解析?

2 个答案:

答案 0 :(得分:2)

Sitecore中的DateTime格式以ISO 8601格式存储。

您可以从DateField

转换为.Net DateTime对象
DateField dateField = (DateField)item.Fields["Date Created"];

// DateTime object
var dateTime = dateField.DateTime;

您还可以使用Sitecore.DateUtil类中的帮助程序将值操作为其他格式。您可以在Date/time best practices文档中阅读更多内容。

答案 1 :(得分:1)

您可以使用以下SQL脚本,如下所示:

DECLARE @DateText NVARCHAR (50) = '20161007T000000'
DECLARE @ConvertText NVARCHAR (50) = SUBSTRING(@DateText, 1, 8) + ' ' + SUBSTRING(@DateText, 10, 2) + ':' + SUBSTRING(@DateText, 12, 2) + ':' + SUBSTRING(@DateText, 14, 2)

SELECT  CONVERT(DATETIME,@ConvertText)

由于