我需要在Sql中对我拥有的from date
和to date
列进行小规模验证。
假设我已经01/08/2014
和30/08/2014
同样,前端用户不应该给出这个日期。
我可以通过使用下面的验证来限制,
select DocEntry from [@PR_OTIMESHEET] where U_frmdate >='20140801' and U_todate <='20140830'
但是用户可能会给予喜欢
从date = 15/08/2014
到date = 30/08/2014
。
在这种情况下,上述查询将变为false。
在01/08/2014
和30/08/2014
之间不应再提供。
我可以知道如何限制用户?
答案 0 :(得分:0)
基于日期查询的方式往往会根据您的数据库而改变。
对于Microsoft SQL Server,您需要使用CONVERT
示例:
CONVERT(datetime, '20140801', 112)
112是指定的日期格式。请在此处查看其他日期格式http://msdn.microsoft.com/en-GB/library/ms187928.aspx
所以你的例子应该是:
select DocEntry from [@PR_OTIMESHEET] where U_frmdate >= CONVERT(datetime, '20140801', 112) and U_todate <= CONVERT(datetime, '20140801', 112)
注意:您的选择范围没有任何意义,因为日期是相同的!所以这只会返回日期恰好是2014-08-01 00:00:00
的东西