sql如何查询1号至30号每天8:00~18:00之间的数据
假设表:iddeliveryDate12016年7月12日17:31:1422016年7月12日18:31:4432016年7月13日07:25:4342016年7月13...
假设表:
id deliveryDate
1 2016年7月12日17:31:14
2 2016年7月12日18:31:44
3 2016年7月13日07:25:43
4 2016年7月13日13:31:58
sql如何查询1号至30号每天8:00~18:00之间的数据 展开
id deliveryDate
1 2016年7月12日17:31:14
2 2016年7月12日18:31:44
3 2016年7月13日07:25:43
4 2016年7月13日13:31:58
sql如何查询1号至30号每天8:00~18:00之间的数据 展开
1个回答
展开全部
select * from 表名 where substring(deliveryDate,14,2)>='08' and substring(deliveryDate,14,2)<'18' and substring(deliveryDate,7,1)='7' and substring(deliveryDate,10,2)!='31' --后面的substring(deliveryDate,7,1)='7'限制的是7月份的数据,7月有31天 添加条件substring(deliveryDate,10,2)!='31'(如果字段deliveryDate中没有空格的话就是上面的额,如果年月日和时间中有空格的话,稍微调整一下数字就可以了)
更多追问追答
追问
感觉你这种方法太依赖字段格式了,月和日可能是个位数也可能是十位数,而且我数据库中deliveryDate是Date类型
追答
那就转换格式,你的deliveryDate 应该是datetime格式吧,不是你所说的date(只表示日期而不包含时间)格式,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询