默认情况下,目标是使用'%'
填充查询的所有输入字段,并让用户在任何他们想要的位置输入实际值。但是,这会导致DATE/TIME
字段出现问题。我收到错误:Conversion failed when converting date and/or time from character string.
如何才能达到'%'
的等效值,但是对于日期?
DECLARE @trans_date datetime = '%'
SELECT
t.lp_num,
t.trans_date
FROM ISW_LPTrans AS t
WHERE t.trans_date = @trans_date
修改 - 删除了LIKE
并替换为=
,因为人们过于关注这一点而且不这个的焦点问题
答案 0 :(得分:0)
评论太长了。您的查询没有意义。 LIKE
用于字符串,日期不是字符串。
如果您愿意,可以将日期转换为规范字符串格式,然后使用它。
但是,日期选择器是选择日期的更典型的解决方案,结果代码不使用LIKE
。
答案 1 :(得分:0)
您不能直接在日期使用LIKE关键字。 LIKE主要用于字符串值。
但是,您可以使用CONVERT functio n将日期转换为varchar,然后应用LIKE关键字。例如:
CONVERT(VARCHAR(25), trans_date, 126) LIKE '2016-10-01%'
默认情况下,目标是填充查询的所有输入字段 使用'%'并让用户在任何他们想要的地方输入实际值。
如果您希望允许该用户输入日期,那么您只需在日期列中提供 NULL 值,而不是使用%值填充它(,这绝对含糊不清日期栏)