【发布时间】:2013-05-06 06:38:49
【问题描述】:
我已经写了这个查询:
SELECT *
FROM w_tbl
WHERE DID NOT IN (SELECT DId FROM tbl_Assign)
AND CAST(MeasDateTime AS Date) = @dta
ORDER BY
CAST(MeasDateTime as DATE) DESC
如您所见,我正在发送一个参数化查询。
所以我把24/09/2010 00:00:00 换成@dta
但我得到这个错误:
从租船人字符串转换日期和/或时间时转换失败。
我告诉你我为什么这样做以及我的目的:
我有一个日期时间列,我只想按日期选择/获取所有数据(即我不想明智地获取日期时间,它必须只是根据日期)
【问题讨论】:
-
您的意思是将
@dta的值设置为字符串?为什么不将其设置为DateTime? -
我怀疑 MeasDateTime 可能没有有效值。顺便问一下这个专栏的类型是什么?
-
@JonSkeet 我在数据库中的字段也是日期时间,它不是字符串......
-
@RafalZiolkowski 我的列类型是
datetimeonly -
嗨 jitendar,你能先检查一下@dta 值吗,因为 24/09/2010 可能是错误的日期。尝试使用 09/24/2010 并检查它是否有效。
标签: .net sql visual-studio-2010 sql-server-2008 datetime