第一次,我说什么! 我不得不从M/D/YYYYYh:mm:ss AM/PM到日期。 请注意,我的当地时间是DD-MM-YYYY,因此,我不得不在改为日期之前以这种格式转换。 表N_IsaacForm中的“Valeur”改为“Valeur”。 这里,我是如何在2008年5月中这样做的。
select NIF.Valeur, CASE WHEN CHARINDEX( PM ,NIF.Valeur) = 0
THEN CONVERT(datetime,substring(NIF.Valeur, P2.Pos + 1, P3.Pos - P2.Pos - 1) + -
+ RIGHT( 0 + substring(NIF.Valeur, P3.Pos + 1, P4.Pos - P3.Pos - 3),8) + -
+ RIGHT( 0 + substring(NIF.Valeur, P1.Pos + 1, P2.Pos - P1.Pos - 1),2) +
+ RIGHT( 0 + substring(NIF.Valeur, 1, P1.Pos-1),2))
--add 12 hours if PM
ELSE DATEADD(hour,12,CONVERT(datetime,substring(NIF.Valeur, P2.Pos + 1, P3.Pos - P2.Pos - 1) + -
+ RIGHT( 0 + substring(NIF.Valeur, P3.Pos + 1, P4.Pos - P3.Pos - 3),8) + -
+ RIGHT( 0 + substring(NIF.Valeur, P1.Pos + 1, P2.Pos - P1.Pos - 1),2) +
+ RIGHT( 0 + substring(NIF.Valeur, 1, P1.Pos-1),2)))
END
FROM N_IsaacForm AS NIF (nolock)
cross apply (select (charindex( / , NIF.Valeur))) as P1(Pos)
cross apply (select (charindex( / , NIF.Valeur, P1.Pos+1))) as P2(Pos)
cross apply (select (charindex( , NIF.Valeur, P2.Pos+1))) as P3(Pos)
cross apply (select (charindex( M , NIF.Valeur, P3.Pos+1))) as P4(Pos)
WHERE CHARINDEX( M ,NIF.Valeur) > 0 --(I had other values in the table with proper format)
你必须改变这些要素的次序,确定你们的当地时间。
取得的成果
8/20/20151:11:31 AM www.un.org/spanish/ga/president
8/19/2015 10:37:32 PM www.un.org/Depts/DGACM/index_french.htm
10/7/2015 8:51:37PM www.un.org/chinese/ga
9/8/2015:27:17 PM 页: 1
希望能帮助他人! 我在这里看到了这么多的帮助!