【发布时间】:2014-04-09 21:19:41
【问题描述】:
我在尝试将列的日期转换为标准 MMDDYYYY 格式时遇到问题。
例如我有一个数据如下的表:
ID | Date | Type |
----------------------------
1 | 20140308 | License |
2 | 20140308 | License |
3 | 48 | License |
我想要得到的结果是:
ID | Date | Type |
-------------------------------
1 | 3-8-2014 | License |
2 | 3-8-2014 | License |
3 | 48(not sure)| License |
当我有垃圾数据进入系统时,这可能吗?当我尝试将日期转换为 MMDDYYYY 时,我不断收到这样的错误。
Msg 241, Level 16, State 1, Line 1 转换时转换失败 字符串中的日期和/或时间。警告:空值是 通过聚合或其他 SET 操作消除。
【问题讨论】:
-
你能发布试图进行转换的 SQL 脚本吗?
-
选择不同的ID,convert(varchar(10),convert(date,DATECOLUMN),101)
-
@JaronCook 看看我的解决方案我使用了
ISDATE()函数,如果传递的参数值是日期值,则返回 1,否则返回 0。既然您提到您的专栏中可能有一些垃圾数据,我认为这是最安全的处理方式。
标签: sql sql-server