sql查询:数据库中的时间有时分秒,我想查某一天和某一时间段的数据(2013-4-15,2013-5-4)的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql查询:数据库中的时间有时分秒,我想查某一天和某一时间段的数据(2013-4-15,2013-5-4)的数据相关的知识,希望对你有一定的参考价值。
应该怎么写查询语句
SELECT count(*) from tb_users where convert(varchar(10),enter_date,120)
BETWEEN '2013-05-23' AND '2013-05-24'
这样不对
sqlserver:
select * from tab
where convert(varchar(10),datecol,120)
between '2013-04-15' and '2013-05-04'
oracle
select * from tabxxx
where to_char(datecol,'yyyy-mm-dd') between '2013-04-15' and '2013-05-04'追问
不对
追答怎么不对,你要查某一天的数据,等于就行了
SELECT count(*) from tb_users where convert(varchar(10),enter_date,120) = '2013-05-24'
between是大于等于,小于等于
SELECT count(*) from tb_users where convert(varchar(10),enter_date,120) BETWEEN '2013-05-23' AND '2013-05-24'
是查23,24两天的数据
convert(varchar(10),enter_date,120)是这个不对
追答能把问题描述清楚点吗?
你的enter_date是datetime还是varchar类型?
如果是datetime类型,不应该错
如果是varchar类型,那你的日期格式是什么?如果是完整的yyyy-MM-dd hh:mm:ss,你就直接left就可以了
left(enter_date,10) = '2013-07-05'
SELECT count(*)
from tb_users
where enter_date BETWEEN '2013-05-23' AND '2013-05-24'
直接这样就ok追问
只能取到23号的,不能获取24号的
追答SELECT count(*)
from tb_users
where enter_date BETWEEN '2013-05-23 00:00:00' AND '2013-05-24 23:59:59'
只能取到一天的,取不到两天的
追答是只取一天,没取两天.
大于23日,小于24日的,没错啊。
用between 就是加时间'2013-05-23 00:00:00' and '2013-05-24 23:59:59'
select count(*) from tb_users
where 时间>='2013-05-23'and
时间<'2013-05-24'
这样就ok了啊。。 第5个回答 推荐于2021-01-29 select * from table where 时间 between and 至于具体到分秒,你可以用format 函数
以上是关于sql查询:数据库中的时间有时分秒,我想查某一天和某一时间段的数据(2013-4-15,2013-5-4)的数据的主要内容,如果未能解决你的问题,请参考以下文章