sql 查询中 有12个月表 写一个查询从中提取所有日期

如题所述

可使用SQL datediff (时间差)来查询某个月份,这是最简的方法:
DATEDIFF 函数
功能 返回两个日期之间的间隔。
语法 DATEDIFF ( date-part, date-expression-1, date-expression-2 )
date-part : year | quarter | month | week | day | hour | minute | second | millisecond
参数 date-part 指定要测量其间隔的日期部分。
要获取某个月的SQL为如下:
select * from table where datediff(month,date_ColName,'2014-12-1')=0
date_ColName:为表中的日期格式的列
'2014-12-1':此为你要查询的某个月的日期格式。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-02
select * from
(select 日期 from 月表1
union all select 日期 from 月表2
union all select 日期 from 月表3
union all select 日期 from 月表4
union all select 日期 from 月表5
union all select 日期 from 月表6
union all select 日期 from 月表7
union all select 日期 from 月表8
union all select 日期 from 月表9
union all select 日期 from 月表10
union all select 日期 from 月表11
union all select 日期 from 月表12
) t本回答被网友采纳
第2个回答  2014-01-02
能把问题描述清楚一点吗? 表/字段 贴出来追问

比如说201301 、201302、 201304。。。。。。201412 这12个表,每个月表都有一个时间字段 ,是每个月的1—-30日 ,现在想从中取出日期和当前日期比较,相等的话就显示这个日期的内容,应该怎样查询,只能联合12个查询吗?有没有更简单的?谢谢!

追答

那有这样建表的,查询的时候能确定日期吗 ?确定日期不就 确定了表名,如果非要 显示 12个月的数据 除了 union all 好像没有别的办法?

追问

想取得12个月的数据,和今天的日期比较,如果是今天的,就显示,主要是想插到jsp页面里

追答

12个月的数据 你想和 今天比较什么? 你是不是想说 今天日期如果在 12个月的日期里面 就显示到页面里面 事实上你可以 这样 : 取当前日期 比如现在是 2013/09/25 你通过 查系统所有表名 看是否存在 201309 这张表select name from sysobjects where xtype='U' where name =‘201309’; 如果 count >1 说明有数据 就可以直接 select * from ”201309“ where day =‘25’ 这样不就OK 了

本回答被提问者采纳
相似回答