Hello每一个我都很难在SQL中获取记录。我要求我必须在下午5:00到8:00之间获取记录。到目前为止,我做了以下。
select * from dlg_deal_transaction inner join dlg_deal on dlg_deal_transaction.deal_id = dlg_deal.id where Cast(dlg_deal_transaction.created_on as time) > '17:00:00.0000000' And
Cast(dlg_deal_transaction.created_on as time) < '08:00:00.0000000'
问题就像我在凌晨1点输入记录一样,我希望它在这个时间范围内获取,因为它是在上面的时间范围内插入的,所以我想获取在5期间插入表中的所有记录:下午00点到第二天上午8点。
然而,我仍未能实现这一目标。如果有人建议我应该做些什么来表达,我将非常感激。提前谢谢。
答案 0 :(得分:1)
认为您需要将AND更改为OR。按原样,你要求时间的每一行&gt;下午5点和&lt;上午08时
答案 1 :(得分:1)
问题是如果创建的日期是01/01/2016那么它将在日期的上午8点之前搜索记录并且在日期的下午5点之后记录,您将永远不会得到期望的结果。您可以将一天添加到创建日期,然后您的查询可能会起作用。
select * from dlg_deal_transaction inner join dlg_deal on dlg_deal_transaction.deal_id = dlg_deal.id where Cast(dlg_deal_transaction.created_on as time) > '17:00:00.0000000' And
Cast(DATEADD(day,1,dlg_deal_transaction.created_on) as time) < '08:00:00.0000000'