sql服务器系统时间格式,SQL Server 日期格式和日期操做

sql服务器系统时间格式,SQL Server 日期格式和日期操做SQLServer发展至今,关于日期的格式的控制方法,有传统的方法,好比CONVERT(),也有比较便利的新方法,好比FORMAT();一样,关于日期的操做函数,也分为传统方法:DATEADD()等,也有便利的新方法:EOMonth()等。sql一,日期的格式化格式化是指把日期类型(Date)、日期和时间类型转化为字符类型,一般使用CONVERT()和FORMAT()函数。express1,传统…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

SQL Server发展至今,关于日期的格式的控制方法,有传统的方法,好比CONVERT(),也有比较便利的新方法,好比FORMAT();一样,关于日期的操做函数,也分为传统方法:DATEADD()等,也有便利的新方法:EOMonth()等。sql

一,日期的格式化

格式化是指把日期类型(Date)、日期和时间类型转化为字符类型,一般使用CONVERT()和FORMAT()函数。express

1,传统的CONVERT()函数

SQL Server控制日期的的显示格式,一般使用CONVERT()函数,经过控制style参数来控制日期显示的格式,可是,style不少,不利于记忆。spa

CONVERT ( data_type [( length )] , expression [, style] )

符合东方人阅读习惯的style及其显示格式以下:code

101: mm/dd/yyyy

110: mm-dd-yyyy

111: yyyy/mm/dd

112: yyyymmdd

120: yyyy-mm-dd hh:mm:ss

121: yyyy-mm-dd hh:mm:sssssss

CONVERT()函数的style是数字,记忆起来比较困难,而且只能按照系统定义的格式来显示,不够灵活。SQL Server提供更为灵活的转换函数FORMAT()。orm

2,便利的FORMAT()函数server

FORMAT()函数,能够方便和灵活地控制数值、日期和时间类型的显示格式,一般状况下,FORMAT()函数主要用于格式化显示date/time类型和数值类型,参数format用于指定显示的格式,给予用户对格式更自由地控制,culture参数是可选的,用于指定显示的语言,该函数返回值的数据类型是NVARCHAR,若是格式转换失败,该函数返回NULL:blog

FORMAT ( value, format [, culture] )

参数format使用#表示一个数值,参数 format 使用如下占位符来表示日期/时间的格式:ci

yyyy、MM、dd:表示年、月、日

hh:mm:ss fffffff:表示时、分、秒、毫秒

使用“/”,“-”等做为链接各个部分(part)的分割符号

(1)把date/time格式化rem

在format参数中指定日期/时间显示的格式,以特定的格式: “yyyy:MMdd hh:mm:ss fffffff” 显式日期/时间,例如:

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

27a99fe46ce52d0a32219cc51c1cfd89.png

(2)转换数值类型

在参数format中使用#表明一个数字,使用相应的链接符,拼接成数字的格式字符,例如:

FORMAT(123456789,’###-##-####’) AS ‘Custom Number Result

60edfc04de9e7fd782b6171d0b1e6322.png

二,日期和时间的结构

经常使用的日期的构成(datepart)是:year、month、day、hour、minute、second、ns、TZoffset(简写为 tz)

DATEPART ( datepart, date )YEAR( date )MONTH( date )DAY ( date )

在实际的产品环境中,周、季度等都颇有用途:

quarter:季度,取值范围是 一、二、三、4

week:周在年中的序数,取值范围是 1 – 53

dayofyear:天在年中的序数,取值范围是 1 – 366

weekday:天在一周中的序数,取值范围是 1 – 7

DATEPART()返回的datepart是int类型,若是想要返回字符类型,可使用DATENAME()函数:

DATENAME ( datepart , date )

经过datepart来构造日期,经常使用的函数有:

DATEFROMPARTS ( year, month, day)

DATETIME2FROMPARTS (year, month, day, hour, minute, seconds, fractions, precision)

DATETIMEOFFSETFROMPARTS (year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision)

TIMEFROMPARTS ( hour, minute, seconds, fractions,precision )

参数precision 是指小数秒的精度,指的是DateTime2(n)、DateTimeOffset(n),Time(n)中的n值,表示以多少位小数表示1s。

三,日期操做

日期函数:EOMonth、Format、DateAdd、DateDiff、SwitchOffset

1,月份的最后一天

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

EOMONTH ( start_date [, month_to_add] )

参数注释:

start_date: 有两种输入方式,可以转换为Date的字符串类型 和 date 数据类型

month_to_add: 是int 类型,可以为正整数,负整数和0,默认值是0,若是省略,那么使用默认值0。

例如,查看当前月的最后一天、下一个月的最后一天、上一个月的最后一天:

declare @datedateset @date=getdate()select EOMONTH(@date) asCurrentMonth_EndDay,

EOMONTH(@date,1) asNextMonth_EndDay,

EOMONTH(@date,-1) as LastMonth_EndDay

2,月份的第一天

使用DateFromParts() 函数,可以从3个正整数(year,month,day)中获取date 类型,只须要将day 参数设置1,就能获取月份的第一天的日期。

declare @datedateset @date=getdate()select DATEFROMPARTS(year(@date),month(@date),1)

也可使用Format() 函数, 以字符串形式返回月份的第一天,例如,获取当前月份的第一天:

FORMAT(GETDATE(),’yyyyMM01′)

3,切换时区

把DateTimeOffset类型的数据切换到指定的时区,在转换过程当中,UTC时间是固定的,依据固定的UTC时间,切换到特定时区的本地时间:

SWITCHOFFSET ( DATETIMEOFFSET, time_zone )

参数注释:

DATETIMEOFFSET:DateTimeOffset(n)类型的变量

time_zone:指定的目标时区数据,格式是  [+|-] hh:mm

使用SwitchOffset()函数把DateTimeOffset的时区偏移(Offset)切换到指定的时区中,例如,把本地时间的时区东八区切换到东七区:

DECLARE @remoteDATETIMEOFFSETDECLARE @localDATETIMEOFFSETSET @local =SYSDATETIMEOFFSET()SET @remote = SWITCHOFFSET (@local, ‘+07:00’)SELECT @remote AS remote_time,@local AS local_time

39170a5b2227d2309fea57be5cdd00f5.png

能够看到,东7区的时间比东8区的时间晚一个小时。

4,当前日期是周几

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

SET DATEFIRST { number | @number_var }

(1)能够经过@@datefirst来获取设置的值

set DATEFIRST 1

select @@datefirst

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

set DATEFIRST 1

select datepart(WEEKDAY,getutcdate())set DATEFIRST 2

–select @@datefirst

select datepart(WEEKDAY,getutcdate())

因为设置不一样的DateFirst,会致使datepart返回不一样的数值,因此必须借助@@DateFirst

set DATEFIRST 2

select Datepart(weekday, getdate()+@@datefirst – 1)set DATEFIRST 1

select Datepart(weekday, getdate()+@@datefirst – 1)

4,使用DateName获取WeekDay的名字

WeekDay的名字跟系统的语言设置有管,跟DateFirst的设置没有关系

(1) 查看当前的语言设置

select @@language

(2) 查看系统支持的语言

select alias,name, *

from sys.syslanguages

(3) 设置语言

set LANGUAGE ‘Simplified Chinese’

set LANGUAGE ‘us_english’

(4) 使用DateName获取WeekDay的名字

set LANGUAGE ‘Simplified Chinese’

select DATENAME(WEEKDAY,getutcdate())set LANGUAGE ‘us_english’

select DATENAME(WEEKDAY,getutcdate())

参考文档:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180107.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux用yum安装jdk或yum组安装jdk只有java命令没有javac命令

    linux用yum安装jdk或yum组安装jdk只有java命令没有javac命令解决linux上使用yum安装jdk导致有java命令没有javac命令的问题

    2022年5月27日
    39
  • python 初中课程_8年级将新增Python课程内容

    python 初中课程_8年级将新增Python课程内容从2020年9月1日开始,浙江3~9年级信息技术课程将替换新的教材。其中变化较大的是,8年级将新增Python课程内容。这也就意味着:从今天起,Python正式成为浙江中学生信息技术必修课!新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法。网友们直呼:我连Excel都还没整明白,人家后浪们就开始学Python了。从的教材目录上我们可以看到,不止是初中,从小学阶段开始…

    2022年5月17日
    41
  • Double转BigDecimal小数点位数不一致问题「建议收藏」

    Double转BigDecimal小数点位数不一致问题「建议收藏」Doubledouble=1.23d;BigDecimalbd=newBigDecimal(double)时,出现转化得到的BigDecimaldb的小数点位数边长的问题。解决办法:BigDecimalbd=BigDecimal.valueof(double);

    2022年5月29日
    52
  • C++日志系统log4cxx使用总结[通俗易懂]

    C++日志系统log4cxx使用总结[通俗易懂]本文主要从log4cxx级别、layout、格式化、命名规则、Filter几个方面介绍。 一、log4cxx命名规则        Logger由一个String类的名字识别,logger的名字是大小写敏感的,且名字之间具有继承的关系,子名有父名作为前缀,用点号.分隔。如:x.y是x.y.z的父亲。根logger(rootlogger)是所有logger的祖先, 它具有如下属性:1…

    2022年6月17日
    36
  • continue和break的区别 python_c语言continue c.编程.net

    continue和break的区别 python_c语言continue c.编程.net1、continue是跳出本次循环,而不是终止整个循环i=1whilei<9:i=i+1ifi==5:#跳出本次循环,不打印5,整个循环还继续continueprint(i)2、break是终止整个循环i=1whilei<9:i=i+1ifi==5:#跳终止整个循环,后面的不再执行breakprint(.

    2025年11月6日
    4
  • c#爬取Silverlight网页[通俗易懂]

    c#爬取Silverlight网页[通俗易懂]前言:爬取普通的文本网页非常容易,但爬取Silverlight的网页代码时,有时候可能会加密。这样就会很麻烦了。下面就爬取网站http://zx.bjmemc.com.cn/(北京空气质量网)进行说明。任务:网站http://zx.bjmemc.com.cn/显示的内容如下图所示。我们的任务就是将空气质量数据抓取下来。工具:1、fiddler,http://www.

    2022年10月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号