sql如何按日期中的月份查询

============环境============一个数据库表,表名data,字段有3个:id,detail,date其中id为自动编号,detail为文本类型,dat... ============ 环境 ============
一个数据库表,表名data,字段有3个:id,detail,date
其中id为自动编号,
detail为文本类型,
date为时间/日期,默认为"now()"(生成格式:2008-2-25 17:18:37),
============ 问题 ============
不再添加字段,直接用date字段,通过SQl语句,能查询出年/月/日报表吗?即如:列出所有2月份添加的记录.如果行,SQL该怎么写?
============ 备注 ============
我现在是加多3个字段,分别用来记录年/月/日,希望有高手能解决!
展开
 我来答
IEIOA
推荐于2019-09-04 · TA获得超过2.2万个赞
知道答主
回答量:16
采纳率:100%
帮助的人:5566
展开全部

sql按日期中的月份查询如下:

SQL Server

select * from [data] where  DATEPART(m,[date])=2

Access

select * from [data] where  DATEPART('m',[date])=2

说明:

DATEPART(datepart,date)

返回表示指定日期的指定部分的整数

datepart 要取得的日期部分

- m 表示月份,d表示日,yyyy表示年

date 日期表达式

举例:

--以2013-12-10 12:56:55为例

--convert(nvarchar(10),CreateDate,120)      =>      2013-12-10

--DATEPART(month,CreateDate)      =>      12

--DATEPART(year,CreateDate)      =>      2013

--月

select datepart(MONTH,'2013-06-08')

select datepart(mm,'2013-06-08')

select datepart(m,'2013-06-08')

扩展资料:

相关函数

SQL Aggregate 函数

SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。

有用的 Aggregate 函数:

AVG() - 返回平均值

COUNT() - 返回行数

FIRST() - 返回第一个记录的值

LAST() - 返回最后一个记录的值

MAX() - 返回最大值

MIN() - 返回最小值

SUM() - 返回总和

SQL Scalar 函数

SQL Scalar 函数基于输入值,返回一个单一的值。

有用的 Scalar 函数:

UCASE() - 将某个字段转换为大写

LCASE() - 将某个字段转换为小写

MID() - 从某个文本字段提取字符

LEN() - 返回某个文本字段的长度

ROUND() - 对某个数值字段进行指定小数位数的四舍五入

NOW() - 返回当前的系统日期和时间

大野瘦子
高粉答主

推荐于2019-10-24 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:32.8万
展开全部

SQL Server

select * from [data] where DATEPART(m,[date])=2

Access

select * from [data] where DATEPART('m',[date])=2

说明:

DATEPART(datepart,date)

返回表示指定日期的指定部分的整数

datepart 要取得的日期部分

- m 表示月份,d表示日,yyyy表示年

date 日期表达式

扩展资料:

SQL查询语句

1、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only5、

2、说明:删除表drop table tabname6

3、说明:增加一个列Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

4、说明:添加主键: Alter table tabname add primary key(col)

5、说明:删除主键: Alter table tabname drop primary key(col)

6、说明:创建索引:create [unique] index idxname on tabname(col….)

删除索引:drop index idxname

注:索引是不可更改的,想更改必须删除重新建。

7、说明:创建视图:create view viewname as select statement

8、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

9、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表(select a from tableA ) except (select a from tableB) except (select a from tableC)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
greystar_cn
推荐于2017-10-15 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
可使用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':此为你要查询的某个月的日期格式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
著名医生陈国良
推荐于2017-09-24 · TA获得超过1125个赞
知道小有建树答主
回答量:484
采纳率:0%
帮助的人:554万
展开全部
SQL Server
select * from [data] where DATEPART(m,[date])=2

Access
select * from [data] where DATEPART('m',[date])=2

说明:
DATEPART(datepart,date)
返回表示指定日期的指定部分的整数
datepart 要取得的日期部分
- m 表示月份,d表示日,yyyy表示年
date 日期表达式
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迷糊熊熊呀
2020-11-14 · TA获得超过997个赞
知道答主
回答量:471
采纳率:0%
帮助的人:23.5万
展开全部

高级excel技巧学习:SQL语句按日期提取数据,斜杠横杠都可以

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式