如何在sql中限制日期

时间:2014-08-20 09:57:48

标签: mysql sql sql-server

我需要在Sql中对我拥有的from dateto date列进行小规模验证。 假设我已经01/08/201430/08/2014 同样,前端用户不应该给出这个日期。 我可以通过使用下面的验证来限制,

select  DocEntry from  [@PR_OTIMESHEET] where U_frmdate >='20140801' and U_todate <='20140830'

但是用户可能会给予喜欢 从date = 15/08/2014date = 30/08/2014

在这种情况下,上述查询将变为false。 在01/08/201430/08/2014之间不应再提供。 我可以知道如何限制用户?

1 个答案:

答案 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

的东西