zoukankan
html css js c++ java
Sql Server 日期推算处理,格式化处理
DECLARE
@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
)
DECLARE
@dt
datetime
SET
@dt
=
GETDATE
()
--
1.短日期格式:yyyy-m-d
SELECT
REPLACE
(
CONVERT
(
varchar
(
10
),
@dt
,
120
),N
'
-0
'
,
'
-
'
)
--
2.长日期格式:yyyy年mm月dd日
--
A. 方法1
SELECT
STUFF
(
STUFF
(
CONVERT
(
char
(
8
),
@dt
,
112
),
5
,
0
,N
'
年
'
),
8
,
0
,N
'
月
'
)
+
N
'
日
'
--
B. 方法2
SELECT
DATENAME
(
Year
,
@dt
)
+
N
'
年
'
+
DATENAME
(
Month
,
@dt
)
+
N
'
月
'
+
DATENAME
(
Day
,
@dt
)
+
N
'
日
'
--
3.长日期格式:yyyy年m月d日
SELECT
DATENAME
(
Year
,
@dt
)
+
N
'
年
'
+
CAST
(
DATEPART
(
Month
,
@dt
)
AS
varchar
)
+
N
'
月
'
+
DATENAME
(
Day
,
@dt
)
+
N
'
日
'
--
4.完整日期+时间格式:yyyy-mm-dd hh:mi:ss:mmm
SELECT
CONVERT
(
char
(
11
),
@dt
,
120
)
+
CONVERT
(
char
(
12
),
@dt
,
114
)
查看全文
相关阅读:
AcWing每日一题--数字三角形
AcWing每日一题--货仓选址
Codeforces Round #693
动态规划--多重背包
动态规划--完全背包
动态规划--01背包
博弈论--SG函数
博弈论--Nim游戏
基础数论--容斥定理
基础数论--卡特兰数
原文地址:https://www.cnblogs.com/nosnowwolf/p/1135560.html
最新文章
leetcode每日刷题计划-简单篇day13
Mybatis源码(三)缓存篇
Mybatis源码(一)构造篇
springBoot多数据源
代理模式
RocketMQ 流量削峰
装饰者模式
SpringBoot:切面AOP实现权限校验:实例演示与注解全解
利用 redis 实现分布式锁服务
通用的权限管理系统
热门文章
多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask
博客笔记
Leecode no.9 判断回文数
Leecode no.8 字符串转数组
Leecode no.4: 找两个顺序数组的中位数
Leecode no.66 实现数组加1
传统IO与零拷贝的几种实现
虚拟内存与Linux层级结构
Mysql redo log和bin log区别
源码解析-BlockingQueue的小解
Copyright © 2011-2022 走看看