热搜词
发表于 2016-9-13 11:03:31 | 显示全部楼层 |阅读模式
数据操作中涉及到统计的部分主要借助数据库内置函数完成
SQL查询今天的记录:
datediff(day,[Datetime],getdate())=0  把Datetime换为你的相应字段;
SQL查询昨天的记录:
datediff(day,[Datetime],getdate())=1  把Datetime换为你的相应字段,getdate()-Datetime即为时间差。
本月记录:
SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0
本周记录:
SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0
本日记录:
SELECT * FROM 表 WHERE datediff(day,[dateadd],getdate())=0


函数
参数/功能
GetDate( )
返回系统目前的日期与时间
DateDiff (interval,date1,date2)
以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date)
以interval指定的方式,加上number之后的日期
DatePart (interval,date)
返回日期date中,interval指定部分所对应的整数值
DateName (interval,date)
返回日期date中,interval指定部分所对应的字符串名称
另外一种使用内置函数查询的方法
测试表
SELECT [Id]      ,[Consume]--decimal      ,[Date] --datatime  FROM [Coder].[dbo].[ConsumeRecord]
统计函数
[url=][/url]
--按日 select sum(consume),day([date]) from consumerecord where year([date]) = '2013' group by day([date]) --按周quarterSET  DATEFIRST  1 --Sets the first day of the week to a number from 1 through 7select sum(consume),datename(week,[date]) from consumerecord where year([date]) = '2013' group by datename(week,[date]) --按月 select sum(consume),month([date]) from consumerecord where year([date]) = '2013' group by month([date]) --按季 select sum(consume),datename(quarter,[date]) from consumerecord where year([date]) = '2013' group by datename(quarter,[date]) [url=][/url]

tips
To see the current setting of SET DATEFIRST, use the @@DATEFIRST function.
参考


全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-22 23:02 , Processed in 0.175746 second(s), 26 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team