2016-10-12 97 views
2

Sitecore将所有字段值存储为nvarchar。我们正在寻找它的日期表示形式转换为SQL日期时间,但无法找到一种风格来匹配MSDN:将Sitecore nvarchar日期表示转换为SQL日期时间

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

日期格式为yyyymmddThhmmss,如:

20161007T000000 
00010101T000000 

是这可能使用SQL CONVERT? - 还是需要一些手动解析?

+1

SQL解决方案是在这里:[http://stackoverflow.com/questions/15701421/convert-an-iso-格式化日期到日期时间](http://stackoverflow.com/questions/15701421/convert-an-iso-formatted-date-to-datetime) – Vladimir

回答

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) 

感谢

2

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

您可以从DateField转换为净DateTime对象:

DateField dateField = (DateField)item.Fields["Date Created"]; 

// DateTime object 
var dateTime = dateField.DateTime; 

您还可以使用在Sitecore.DateUtil类佣工的价值观操纵为不同的格式。您可以在Date/time best practices文档中阅读更多内容。

+0

不幸的是,这是在SQL级别完成的报告目的 - 任何我可以用SQL做什么? –

+0

@RobBell你关心时间的一部分吗? – jammykam