`

sql根据日期处理

阅读更多

获取日期周数:select   datename(week,getdate()) 

SQL codeDECLARE @dt datetime
SET @dt=GETDATE()

DECLARE @number int
SET @number=3

--1.指定日期该年的第一天或最后一天
--A. 年的第一天
SELECT CONVERT(char(5),@dt,120)+'1-1'

--B. 年的最后一天
SELECT CONVERT(char(5),@dt,120)+'12-31'


--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECT CONVERT(datetime,
   CONVERT(char(8),
       DATEADD(Month,
           DATEPART(Quarter,@dt)*3-Month(@dt)-2,
           @dt),
       120)+'1')

--B. 季度的最后一天(CASE判断法)
SELECT CONVERT(datetime,
   CONVERT(char(8),
       DATEADD(Month,
           DATEPART(Quarter,@dt)*3-Month(@dt),
           @dt),
       120)
   +CASE WHEN DATEPART(Quarter,@dt) in(1,4)
       THEN '31'ELSE '30' END)

--C. 季度的最后一天(直接推算法)
SELECT DATEADD(Day,-1,
   CONVERT(char(8),
       DATEADD(Month,
           1+DATEPART(Quarter,@dt)*3-Month(@dt),
           @dt),
       120)+'1')


--3.指定日期所在月份的第一天或最后一天
--A. 月的第一天
SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')

--B. 月的最后一天
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')

--C. 月的最后一天(容易使用的错误方法)
SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))


--4.指定日期所在周的任意一天
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)


--5.指定日期所在周的任意星期几
--A.  星期天做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)

--B.  星期一做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)


1.一个月第一天的
Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

2.本周的星期一
Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

3.一年的第一天
Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

4.季度的第一天
Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

5.当天的半夜
Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

6.上个月的最后一天
Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

7.去年的最后一天
Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

8.本月的最后一天
Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

9.本年的最后一天
Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

10.本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 

返回当前日期和时间
通过函数GETDATE(),你可以获得当前的日期和时间。函数GETDATE()可以用来作为DATEDIME型字段的缺省值。这对插入记录时保存当时的时间是有用的。要建立一个表,其中的记录包含有当前的日期和时间,可以添加一个DATETIME型字段,指定其缺省值为函数GETDATE()的返回值,就象这样:

Create TABLE site_log (
username VARCHAR(40),
useractivity VARCHAR(100),
entrydate DATETIME DEFAULT GETDATE())

转换日期和时间
函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒)。
要得到不同格式的日期和时间,你需要使用函数CONVERT()。例如,当下面的这个语句执行时,显示的时间将包括毫秒:

Select CONVERT(VARCHAR(30),GETDATE(),9)

分享到:
评论

相关推荐

    SqlServer日期处理函数

    ### SqlServer 日期处理函数详解 #### 概述 SqlServer 提供了一系列强大的日期处理函数,这些函数可以帮助开发者和数据库管理员高效地操作日期和时间数据。本文档将详细介绍几个常用的日期处理函数及其应用场景,并...

    sql 日期处理常用方法

    本文将详细介绍SQL中日期处理的常用方法,包括获取当前系统时间、日期加减运算、计算日期差、提取日期部分、转换日期格式等功能。 ### 一、获取当前系统时间 在SQL Server中,`GETDATE()`函数用于返回当前的系统...

    sql日期处理的函数大全

    以下是对SQL日期处理函数的全面解析,这些函数包括获取当前系统时间、修改日期时间值、计算日期时间间隔、提取日期时间的部分值以及验证和转换日期时间值。 ### 1. 获取当前系统时间 - **GETDATE()**:返回服务器...

    SQL日期操作日期推算处理

    SQL日期操作 SQL日期操作日期推算处理

    sql日期处理大全,都是例子

    ### SQL 日期处理技巧详解 #### 一、SQL Server日期格式转换 在SQL Server中,日期格式转换是一项非常实用的功能,对于数据展示、查询优化等方面都有着重要的作用。下面将详细介绍几种常用的日期格式转换方法。 #...

    sql server日期格式转换方法大全

    在SQL Server中,日期和时间数据类型的处理是数据库操作中的常见任务。无论是为了报表、数据分析还是用户界面展示,我们经常需要将日期格式进行转换。本文将深入探讨SQL Server中多种日期格式转换的方法。 1. `...

    sqlServer 日期类型转字符串

    在SQL Server中,将日期类型转换为字符串是一个常见的需求,特别是在数据展示或处理时需要特定日期格式的情况下。本文将深入探讨如何使用SQL Server内置的`CONVERT`函数将日期类型转化为各种格式的字符串,以及这一...

    SQL中将日期转换为中文大写

    但如果日期转换是系统的关键部分,或者需要处理大量数据,那么存储过程可能会更有效率。在选择方法时,还需要考虑数据库系统的兼容性,因为不同的SQL方言可能支持不同的函数和语法。 总的来说,SQL中将日期转换为...

    关于日期的处理包括java和sql

    sql日期转换 在sql中,我们可以使用CAST函数将字符串转换为日期类型。例如: SELECT CAST('2012-04-26' AS DATE) FROM DUAL; 反之,我们也可以使用CAST函数将日期类型转换为字符串。例如: SELECT CAST(DATE '...

    SQL Server中日期问题的解决

    ### SQL Server中日期问题的解决 在Microsoft SQL Server(以下简称SQL Server)中处理日期和时间时,经常会...此外,随着SQL Server版本的不断更新,还会有更多的新特性被引入,以支持更加灵活和强大的日期处理功能。

    sql server提取日期的部分

    在SQL Server中,处理日期和时间是常见的任务,特别是在数据分析和报表生成中。提取日期的特定部分可以帮助我们更好地理解和组织数据。本文将详细介绍如何使用`DATEPART`和`DATENAME`这两个函数来提取日期的不同部分...

    SQL动态日期列生成并统计

    "知识点:SQL根据一个日期,返回1号至当日所有日期.sql"这个文件名暗示了一个更具体的应用,即生成从指定日期开始到当天的所有日期。 为了实现这个功能,我们可以先获取当前日期,然后用上述方法生成从指定日期到...

    SQL中日期格式转换

    在SQL中,日期和时间数据类型的格式...理解并熟练运用这些日期格式转换方法,可以让你在处理SQL日期和时间数据时更加得心应手,为用户提供更友好的日期时间显示。记得根据具体的应用场景和用户需求选择合适的日期格式。

    Sql Server日期格式转换

    ### Sql Server 日期格式转换详解 在日常使用Sql Server数据库的过程中,我们经常会...同时,也可以结合其他字符串处理函数(如`REPLACE`)实现更加复杂的日期格式转换任务。希望本文能为大家提供有益的参考和启示。

    sqlserver中对时间日期的操作

    在SQL Server中对时间日期的操作是数据库管理与开发过程中不可或缺的一部分。这不仅涉及到对当前时间的获取、格式化,还包括了日期的计算和调整。以下将深入解析如何在SQL Server中进行时间日期的操作。 ### 一、...

    oracle sql 根据年份、周数取日期

    ### Oracle SQL日期函数 Oracle提供了丰富的日期函数,可以用于日期的格式化、转换和计算。其中,`TO_DATE`和`TO_CHAR`是两个关键的函数: - **TO_DATE**:此函数用于将字符串转换为日期格式。语法如下:`TO_DATE...

    SQL日期查询

    ### SQL日期查询知识点详解 #### 一、概述 在日常的数据库操作中,经常会遇到根据日期范围进行数据筛选的需求。本篇文章将通过一个具体的SQL查询示例来介绍如何利用SQL语句实现对指定日期范围内数据的查询。示例中...

    delphi、 sql 日期时间函数

    在实际开发中,结合使用Delphi的日期处理函数和SQL的日期时间函数,可以构建出强大的数据处理和分析系统。例如,你可能需要在Delphi程序中获取当前日期,然后将这个日期插入到MSSQL数据库中,或者根据用户输入的日期...

    sql 日期格式的显示方式

    在处理数据库中的日期数据时,我们经常需要根据不同的应用场景来调整日期的显示格式。特别是在使用SQL Server时,对于日期类型的字段(如`smalldatetime`)进行格式化显示是一项基本且重要的技能。本文将详细介绍...

Global site tag (gtag.js) - Google Analytics