在我的表中,我有一个日期时间空字段称为logDate。 存储的格式:2014-03-28 12:24:00.000SQL Server 2012错误转换日期从字符串选择日期时如
我有一个窗体,日志日期是搜索日志的字段之一。 用户将因此在我的SELECT程序进入像2014年3月28日
日期我需要使用,如:
@logDate datetime =NULL
.
.
SELECT .. FROM mytable WHERE
(@logDate IS NULL OR CONVERT(VARCHAR, @logDate, 102) LIKE '%'+logDate+'%')
我执行的过程:
EXEC dbo.SELECT_mytable @logDate= '2014-03-28'
但我得到以下错误:
Conversion failed when converting date and/or time from character string.
我在做什么错?
你为什么不使用之间有日期时间值代替,或者只是转换为“日期”?尽可能避免字符串转换... –
不是事件他字符串转换,是谓词[SARGability](http://en.wikipedia.org/wiki/Sargable)。通过在日期使用LIKE,任何使用索引范围扫描的希望都被抛出,查询将保证进行完整的端到端扫描。 –
DATETIME和DATE数据类型不以任何格式存储。你看到的格式是各种东西的产品,如客户端工具,语言等。 –