2016-10-12 138 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