【发布时间】:2016-04-22 16:16:14
【问题描述】:
我正在尝试比较 2 个人,看看谁的生日在今年早些时候。我正在尝试组合一个解决方案,我使用 RIGHT(DOB, 5) 从日期时间字段中获取 mm-dd 并将其与 '1900' 连接以创建一个新的日期字段并将其用于比较。
CONVERT(DATE,'1900-' + RIGHT(DOB,5),126) DOB
但是我收到以下错误:
从字符串转换日期和/或时间时转换失败。
对于如何解决这个问题有什么建议吗?
【问题讨论】:
-
你有什么 DOB 值的例子吗?
-
您的 DOB 列实际上是日期列吗?根据您的示例,它看起来像一个字符串,其中很可能包含用于构造日期的无效数据。
-
删除转换并查看值。你的数据一定有问题。
-
您正在使用 RIGHT(SomeDate, 5),它不会返回 mm-dd。它将返回一个冒号、分钟和 AM/PM。选择权(getdate(), 5)
标签: sql sql-server date concatenation