SQL中按日期进行查询,如何截取日期进行查询

需要在SQL中按日期进行查询,时间从2012-2014,可是时间是精确到秒的,如何分别查询2012,2013,2014的数据?... 需要在SQL中按日期进行查询,时间从2012-2014,可是时间是精确到秒的,如何分别查询2012,2013,2014的数据? 展开
 我来答
解0人
推荐于2017-10-04 · TA获得超过2389个赞
知道大有可为答主
回答量:1474
采纳率:83%
帮助的人:745万
展开全部
sql server 中,
可以用cast()函数将日期时间转换为日期,

比如:cast('2014-01-22 13:22:35.000' as date) 的结果为2014-01-22
以下语句是查询2012年的数据,日期范围可以修改
select * 表名
where CAST(时间字段 as date) between '2012-01-01' and '2012-12-31'

如果要查全年数据,也可以这样,
select * 表名 where year(时间字段)=2012

另外,用convert()函数也可以将日期时间字段转换为日期字段来代替cast,具体用法baidu一下

如果是oracle数据库请用to_date()代替cast将日期时间字段转换为日期来查询

祝你成功!
cy0924
2014-02-10
知道答主
回答量:24
采纳率:0%
帮助的人:19.1万
展开全部
那你就直接写 time>date'2012-01-01' and time<date'2013-01-01'
当然,如何把'2012-01-01'转换为数据库的时间类型,各种数据库是不一样的,oracle中是to_date('2012-01-01','yyyy-MM-dd')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-10
展开全部
给你一个例子啊。
SELECT * FROM 表名
WHERE CREATETIME<TO_DATE('2013-05-1 00:00:00','yyyy-mm-dd hh24:mi:ss')
AND CREATETIME>TO_DATE('2013-04-1 00:00:00','yyyy-mm-dd hh24:mi:ss')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华夏日长兴
2014-02-10 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3672万
展开全部
日期 between '2012-01-01 00:00:00.000' and '2014-12-31 23:59:59.999'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linsloony
2014-02-10 · TA获得超过362个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:281万
展开全部
year(日期列)=2012
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式