博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql 当天、本周、本月数据查询
阅读量:4212 次
发布时间:2019-05-26

本文共 1575 字,大约阅读时间需要 5 分钟。

select * from table1 where datediff(month,[datetime1],getdate())=0

select * from table1 where datediff(week,[datetime1],getdate())=0

时间格式化“1900-01-01” : convert(varchar(100),getdate(),120)

获取 星期几名称:datename(weekday, getdate())

在当前的日期, 加上减去四天dateadd(day, -4, getdate())

来自:

附加:

本月记录

SELECT * FROM 表 WHERE datediff(month,[billdate],getdate())=0
本周记录
SELECT * FROM 表 WHERE datediff(week,[billdate],getdate())=0
当天记录
SELECT * FROM 表 WHERE datediff(day,[billdate],getdate())=0

.其他都没有问题,但是在查询本周的时候就会有问题,因为国外的一周是从周日开始的,也就是周日到周六为一周,而我们国家一般是从周一开始到周日算一周的.而SQL SERVER是微软的产品,所以当然遵循国外的习惯.所以在SQL中凡是涉及到周计算,周查询的,都要考虑这个问题.就上面的举例:上面的本周记录的查询方式是用的国外的计算方式,而按照国内的习惯,这个查询就是错误的.必须先判断今天是否是周日,并采取不同的处理方式.当今天不是周日时,必须将表时间字段减一后进行计算,这是因为上个周日在SQL SEVER中是本周的起始.

IF DATENAME(WEEKDAY,getdate())<>'星期日'

   SELECT * FROM 表 where datediff(week,dateadd(dd,-1,BillDate),getdate())=0
ELSE
   SELECT * FROM 表 where datediff(day,BillDate,getdate())<7

sql server中的其他时间函数

1.   当前系统日期、时间
     select getdate() 

2. dateadd   在向指定日期加上一段时间的基础上,返回新的 datetime 值

    例如:向日期加上2天
    select dateadd(day,2,'2004-10-15')   --返回:2004-10-17 00:00:00.000

3. datediff 返回跨两个指定日期的日期和时间边界数。
    select datediff(day,'2004-09-01','2004-09-18')    --返回:17

4. datepart 返回代表指定日期的指定日期部分的整数。
   SELECT DATEPART(month, '2004-10-15')   --返回 10

5. datename 返回代表指定日期的指定日期部分的字符串
    SELECT datename(weekday, '2004-10-15')   --返回:星期五

6. day(), month(),year() --可以与datepart对照一下

select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)

select datename(dw,'2004-10-15')

select 本年第多少周=datename(week,'2004-10-15') 这个查询按照国内的算法是有问题的.
       ,今天是周几=datename(weekday,'2004-10-15')

转载地址:http://opzmi.baihongyu.com/

你可能感兴趣的文章
Eclipse下Nodejs项目配置步骤
查看>>
SQL Server 2008 对 T-SQL 语言的增强
查看>>
查询09年1-12月的车主数据样本
查看>>
Server 2005 专用管理员连接 (DAC) 使用技巧
查看>>
实例名 (SQL Server Express)
查看>>
索引视图
查看>>
信息粒度
查看>>
模式分解
查看>>
数据和信息
查看>>
讲解MSSQL数据库中SQL锁机制和事务隔离级别
查看>>
Reporting Services 2: 参数化报表
查看>>
配置用于远程管理的报表服务器
查看>>
Sql2005 全文索引
查看>>
全文检索拾零
查看>>
sql server 2008全文索引干扰词示例
查看>>
SQL Server DATEDIFF() 函数
查看>>
关于使用表接收存储过程返回结果集的问题
查看>>
SQL Server数据库常用的T-SQL命令
查看>>
SQL SERVER性能优化--Tempdb相关问题
查看>>
SQL SERVER 中如何使用行锁
查看>>