我有疑问:
SELECT Firma, Czas, Dzien, Opis, Kto, ID
FROM Rok2016
WHERE (Dzien BETWEEN @z1 AND @z2)
AND ((@x='*' AND Firma!='')OR(@x!='*' AND Firma=@x))
AND ((@y='*' AND Kto!='')OR(@y!='*' AND Kto=@y))
z1和z2是格式日期,如DD / MM / YYYY。
显示天之间的所有记录,并且根本不考虑月份。请帮忙
答案 0 :(得分:1)
对于SQL服务器:
如果要比较日期,则应使用日期(或日期时间/ 2)数据类型。
使用set dateformat dmy;
来避免convert()
中的格式冲突:
set dateformat dmy;
SELECT Firma, Czas, Dzien, Opis, Kto, ID
FROM Rok2016
WHERE (convert(date,Dzien) BETWEEN convert(date,@z1) AND convert(date,@z2))
AND ((@x='*' AND Firma!='')OR(@x!='*' AND Firma=@x))
AND ((@y='*' AND Kto!='')OR(@y!='*' AND Kto=@y))
答案 1 :(得分:0)
将@ z1和@ z2转换为实际日期,如此
Select convert(date,'15/06/2016',103)
返回
2016-06-15
或者在你的情况下
...
Dzien BETWEEN convert(date,@z1,103) AND convert(date,@z2,103)
...