SQL Server 日期函数:EOMonth、DateFormat、Format、DatePart、DateName

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

一,月份的最后一天

函数 EOMonth 返回指定日期的最后一天

EOMONTH ( start_date [, month_to_add ] )

1,对于start_date 有两种输入方式,能够转换为Date的字符串类型 和 date 数据类型。

declare @date date
set @date=getdate()

select EOMONTH(@date),EOMONTH('2016-08-06'),EOMONTH('20160806')

2,month_to_add 是int 类型,能够为正整数,负整数和0,默认值是0,如果省略,那么使用默认值0。

复制代码

declare @date date
set @date=getdate()

select EOMONTH(@date) as CurrentMonth_EndDay,
    EOMONTH(@date,1) as NextMonth_EndDay,
    EOMONTH(@date,-1) as LastMonth_EndDay

复制代码

二,月份的第一天

使用DateFromParts 函数,能够从三个正整数(year,month,day)中获取date 类型。

DATEFROMPARTS ( year, month, day )

1,只需要将day 参数设置1,就能获取月份的第一天。

declare @date date
set @date=getdate()

select DATEFROMPARTS(year(@date),month(@date),1) 

三,Format 函数

Format 函数返回值得数据类型是:nvarchar 或 null

FORMAT ( value, format [, culture ] )

参数 format 是日期/时间的显式格式:

  • yyyy-MM-dd:表示年,月,日
  • hh:mm:ss fffffff:表示时,分,秒,毫秒

1,以特定的格式: “yyyy:MMdd hh:mm:ss fffffff” 显式日期/时间

select format(SYSDATETIME(),'yyyy-MM-dd hh:mm:ss fffffff')

2,计算当前月份的第一天

FORMAT(GETDATE(),'yyyyMM01')

四,当前日期是周几

在SQL Server中,通过DataFirst选项设置一周的第一天,number是从1到7,表示一周的7天。

SET DATEFIRST { number | @number_var }

1,可以通过@@datefirst来获取设置的值

set DATEFIRST 1
select @@datefirst

2,使用函数datepart函数获取当天是周几

复制代码

set DATEFIRST 1
--select @@datefirst

--Result : 2
select datepart(WEEKDAY,getutcdate())

set DATEFIRST 2
--select @@datefirst

--Result: 1
select datepart(WEEKDAY,getutcdate())

复制代码

由于设置不同的DateFirst,会导致datepart返回不同的数值,所以必须借助@@DateFirst

复制代码

set DATEFIRST 2
--Result : 2
select Datepart(weekday, getdate()+@@datefirst - 1)

set DATEFIRST 1
--Result : 2
select Datepart(weekday, getdate()+@@datefirst - 1)

复制代码

五,使用DateName获取WeekDay的名字,跟DateFirst的设置没有关系,跟语言设置相关
3.1 查看当前的语言设置

select @@language

3.2 查看系统支持的语言

select alias,name, * 
from sys.syslanguages

3.3 设置语言

--将语言设置为简体中文
set LANGUAGE 'Simplified Chinese'

--将语言设置为英语
set LANGUAGE 'us_english'

3.4 使用DateName获取WeekDay的名字

复制代码

set LANGUAGE 'Simplified Chinese'
--Result:星期二
select  DATENAME(WEEKDAY,getutcdate())

set LANGUAGE 'us_english'
--Result:Tuesday
select  DATENAME(WEEKDAY,getutcdate())

复制代码

参考doc:

FORMAT (Transact-SQL)

DATEPART (Transact-SQL)

DATEFROMPARTS (Transact-SQL)

EOMONTH (Transact-SQL)

作者悦光阴

出处http://www.cnblogs.com/ljhdo/

 本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。  









本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/5026165.html,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
SQL 人工智能 数据挖掘
如何在`score`表中正确使用`COUNT`和`AVG`函数?SQL聚合函数COUNT与AVG使用指南
本文三桥君通过score表实例解析SQL聚合函数COUNT和AVG的常见用法。详解COUNT(studentNo)、COUNT(score)、COUNT()的区别,以及AVG函数对数值/字符型字段的不同处理,特别指出AVG()是无效语法。实战部分提供6个典型查询案例及结果,包含创建表、插入数据的完整SQL代码。产品专家三桥君强调正确理解函数特性(如空值处理、字段类型限制)对数据分析的重要性,帮助开发者避免常见误区,提升查询效率。
162 0
|
12月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
180 3
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
SQL 数据库 索引
SQL中COUNT函数结合条件使用的技巧与方法
在SQL查询中,COUNT函数是一个非常常用的聚合函数,用于计算表中满足特定条件的记录数
2177 5
|
SQL 开发框架 .NET
sql server日期时间函数
sql server日期时间函数
164 2
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 关系型数据库 C语言
PostgreSQL SQL扩展 ---- C语言函数(三)
可以用C(或者与C兼容,比如C++)语言编写用户自定义函数(User-defined functions)。这些函数被编译到动态可加载目标文件(也称为共享库)中并被守护进程加载到服务中。“C语言函数”与“内部函数”的区别就在于动态加载这个特性,二者的实际编码约定本质上是相同的(因此,标准的内部函数库为用户自定义C语言函数提供了丰富的示例代码)
|
SQL 关系型数据库 MySQL
【超全整理】SQL日期与时间函数大汇总会:MySQL与SQL Server双轨对比教学,助你轻松搞定时间数据处理难题!
【8月更文挑战第31天】本文介绍了在不同SQL数据库系统(如MySQL、SQL Server、Oracle)中常用的日期与时间函数,包括DATE、NOW()、EXTRACT()、DATE_ADD()、TIMESTAMPDIFF()及日期格式化等,并提供了具体示例。通过对比这些函数在各系统中的使用方法,帮助开发者更高效地处理日期时间数据,满足多种应用场景需求。
1651 1
|
SQL 关系型数据库 MySQL
SQL日期函数
SQL日期函数
201 0
|
SQL 数据处理 数据库