SQL Server一些使用的日期函数,更新中...


sqlserver

日期

1.日期列表

传入时间字符串,列出来接下来6天的日期列表。传入的时间如果是周一,那么列出的就是本周的日期啦

SELECT CONVERT
	( VARCHAR ( 10 ), DATEADD( DAY, number, '2021-03-15' ), 23 ) date_result
FROM
	master..spt_values 
WHERE
	type = 'p' AND number < 7

在这里插入图片描述

传入时间字符串,列出来前6天的日期列表

SELECT CONVERT
	( VARCHAR ( 100 ), dateadd( d, number, CONVERT ( datetime, '2021-03-15', 126 ) - 6 ), 23 ) AS date_result 
FROM
	master..spt_values n 
WHERE
	n.type = 'p' AND n.number < 7

在这里插入图片描述


2.时间转换

格式化时间,获取yyyyMMdd

SELECT CONVERT ( VARCHAR ( 10 ), '1949-10-01 12:13:14', 120 ) AS result

结果:1949-10-01


字符串转时间

SELECT CONVERT ( datetime, '2021-03-15', 126 ) AS date_result

结果:2021-03-15 00:00:00.000


时间转字符串

SELECT CONVERT(varchar(100), GETDATE(), 120)

结果:2021-03-15 15:10:21


格式类型

年份(yy)年份(yyyy)标准输出
-0 或 100 (*)默认值mon dd yyyy hh:miAM(或 PM)
1101美国mm/dd/yyyy
2102ANSIyy.mm.dd
3103英国/法国dd/mm/yy
4104德国dd.mm.yy
5105意大利dd-mm-yy
6106-dd mon yy
7107-mon dd, yy
8108-hh:mm:ss
-9 或 109 (*)默认值 + 毫秒mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10110美国mm-dd-yy
11111日本yy/mm/dd
12112ISOyymmdd
-13 或 113 (*)欧洲默认值 + 毫秒dd mon yyyy hh:mm:ss:mmm(24h)
14114-hh:mi:ss:mmm(24h)
-20 或 120 (*)ODBC 规范yyyy-mm-dd hh:mm:ss[.fff]
-21 或 121 (*)ODBC 规范(带毫秒)yyyy-mm-dd hh:mm:ss[.fff]
-126(***)ISO8601yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
-130*科威特dd mon yyyy hh:mi:ss:mmmAM
-131*科威特dd/mm/yy hh:mi:ss:mmmAM

3.时间计算

本年第一天

SELECT DATEADD( yy, DATEDIFF( yy, 0, getdate( ) ), 0 ) AS [本年第一天]

本年最后一天

SELECT DATEADD( ms,- 3, DATEADD( yy, DATEDIFF( yy, 0, getdate( ) ) + 1, 0 ) ) AS [本年最后一天]

本月第一天

SELECT DATEADD( mm, DATEDIFF( mm, 0, getdate( ) ), 0 ) AS [本月第一天]

本月最后一天

SELECT DATEADD( ms,- 3, DATEADD( mm, DATEDIFF( m, 0, getdate( ) ) + 1, 0 ) ) AS [本月最后一天]

本周第一天

SELECT DATEADD( wk, DATEDIFF( wk, 0, getdate( ) ), 0 ) AS [本周第一天]

今天凌晨

SELECT DATEADD( dd, DATEDIFF( dd, 0, getdate( ) ), 0 ) AS [今天的凌晨]

字符串

未完待续…

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值