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之间的数据
展开
 我来答
我是丑九怪
2016-07-12 · 分享从无到有,界限从有到无
我是丑九怪
采纳数:327 获赞数:792

向TA提问 私信TA
展开全部
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(只表示日期而不包含时间)格式,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式