在當前表中,我有一列以ddmmyyyy格式保存日期字段,它的類型爲varchar(8)。該列也有一些字符串值。如果源列中的值是有效的日期時間,我想創建一個計算列,該列將保留DateTime格式的值。計算列
Q
計算列
0
A
回答
0
0
嘗試解析您的VARCHAR到DD/MM/YYYY嘗試投前:
cast(substring([datestring],1,2) + '/' +
substring([datestring],3,2) + '/' +
substring([datestring],5,4) as datetime)
+0
此問題有一個SQL2005標記。 DATE數據類型是在SQL2008中添加的。 – 2010-11-03 15:48:17
+0
謝謝,@G馬斯特羅斯,我編輯了我的回覆 – Beth 2010-11-03 15:54:25
0
的SQL Server喜歡的格式日期的yyyymmdd,所以會有一些字符串操作涉及到格式化你的數據。我們還應該使用IsDate函數來確保我們有一個有效的日期。
所以:
Cast(Case When IsDate(Right(@Data, 4)
+ SubString(@Data, 3, 2)
+ Left(@Data, 2)) = 1
Then Right(@Data, 4)
+ SubString(@Data, 3, 2)
+ Left(@Data, 2) End As DateTime)
注意,此代碼應正確處理包含您的VARCHAR列中的無效日期。如果日期無效,此代碼將返回NULL。
相關問題
- 1. 新列計算
- 2. 計算列
- 3. SQL計算列
- 4. NHibernate計算列
- 5. DataGrid計算列
- 6. jqGrid計算列
- 7. 計算陣列
- 8. DataGridView列計算
- 9. 計算MYSQL列
- 10. 計算列
- 11. 計算列
- 12. edmx計算列
- 13. SSRS - 列計算
- 14. 列計算器
- 15. 計算列
- 16. SharePoint計算列
- 17. SQL計算列和計算創建表
- 18. Sharepoint計算列何時實際計算?
- 19. 計數計算列在SSRS
- 20. Sharepoint計算列-LEFT()
- 21. 計算列爲PK
- 22. 列計算Rails 3
- 23. PHP計算陣列
- 24. 計算列索引
- 25. 更新計算列
- 26. SharePoint列表計算
- 27. 列表項計算
- 28. MySQL的計算列
- 29. 計算列 - 性能
- 30. 式計算列號
友情提示:以下所有答案均無法解決DateFormat問題 – smirkingman 2010-11-03 16:22:50