【发布时间】:2015-02-12 04:36:49
【问题描述】:
我有这样的数据:
+-----+---------+----------+
| id | name | expdate |
+-----+---------+----------+
| 1 | chookies| 02/2015 |
| 2 | snack | 03/2015 |
| 3 | snack1 | 04/2015 |
+-----+---------+----------+
expdate 的数据类型是 varchar(7),我想知道从现在到 2015 年 3 月过期的 cookie 的名称。
我试过这个,但得到一个错误:
select
id, name,
convert(datetime, '01/' + expdate, 103)
from
cookies
where
datediff(month, datetime, convert(datetime, '01/' + expdate, 103))
错误:
从字符串转换日期时间时转换失败。
我使用的是 SQL Server 2005,我缺少什么?
谁能帮帮我?
谢谢
【问题讨论】:
-
检查
expdate列month的值是否大于12,如'13/2015' -
没有大于12的数据
-
对我来说,它应该检查这个
declare @date varchar(7)='12/2015'select convert(datetime,'01/'+@date,103) -
是的,NoDisplayName 我认为你是对的,数据扩展有问题,我尝试使用小数据,它的工作,转换数据没有错误
标签: sql sql-server string datetime