在当前表中,我有一列以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. jqGrid计算列
- 4. 计算MYSQL列
- 5. 计算列
- 6. NHibernate计算列
- 7. 新列计算
- 8. 计算列
- 9. SQL计算列
- 10. Sharepoint计算列何时实际计算?
- 11. 计数计算列在SSRS
- 12. 更新计算列
- 13. 计算DNA序列
- 14. Spotfire计算的列
- 15. PHP阵列计算
- 16. 添加计算列
- 17. 计算选定列
- 18. 列表项计算
- 19. R:列间计算
- 20. 计算列为空
- 21. PHP计算阵列
- 22. 计算列为PK
- 23. 计算一系列
- 24. 垂直计算列
- 25. SQL Server计算列
- 26. JPA/EclipseLink - 计算列
- 27. System.Linq.Expressions与计算列
- 28. 计算列数据
- 29. 的SharePoint计算列
- 30. SharePoint列表计算
友情提示:以下所有答案均无法解决DateFormat问题 – smirkingman 2010-11-03 16:22:50