2016-10-12 13 views
2

Sitecoreはすべてのフィールド値をnvarcharsとして保存します。私たちは、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-書式設定された日付から日時](0120.No. – 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