sql日期格式

1 ---上个月月初第一天
2 select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 )
3
4 ---上个月月末最后一天
5 select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 112 )
6
7 --1. 显示本月第一天
8
9 SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
10
11 select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)
12
13 --2. 显示本月最后一天
14
15 select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
16
17 SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))
18
19 --3. 上个月的最后一天
20
21 SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
22
23 --4. 本月的第一个星期一
24 select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)
25
26 --5. 本年的第一天
27
28 SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
29
30 --6. 本年的最后一天
31
32 SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
33
34 --7. 去年的最后一天
35
36 SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))
37
38 --8. 本季度的第一天
39
40 SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)
41
42 --9. 本周的星期一
43
44 SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
45
46 --10. 查询本月的记录
47
48 select * from tableName where DATEPART(mm, theDate)=DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
49
50 --11. 查询本周的记录
51
52 select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
53
54 --12 查询本季的记录 注:其中:GETDATE() 是获得系统时间的函数。
55
56 select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
57
58 --13. 获取当月总天数:
59
60 select DATEDIFF(dd,getdate(),DATEADD(mm, 1, getdate()))
61
62 select datediff(day,dateadd(mm, datediff(mm,'',getdate()), ''),dateadd(mm, datediff(mm,'',getdate()), '1900-02-01'))
63
64 --14. 获取当前为星期几
65
66 SELECT DATENAME(weekday, getdate())
67
68
69
70 -------------------------------------------------------------------------------------------
71
72 select CONVERT(varchar(12) , getdate(), 101 ) --12/28/2007
73
74 select CONVERT(varchar(12) , getdate(), 102 ) --2007.12.28
75
76 select CONVERT(varchar(12) , getdate(), 103 ) --28/12/2007
77
78 select CONVERT(varchar(12) , getdate(), 104 ) --28.12.2007
79
80 select CONVERT(varchar(12) , getdate(), 105 ) --28-12-2007
81
82 select CONVERT(varchar(12) , getdate(), 106 ) --28 12 2007
83
84 select CONVERT(varchar(12) , getdate(), 107 ) --12 28, 2007
85
86 select CONVERT(varchar(12) , getdate(), 108 ) --10:06:33
87
88 select CONVERT(varchar(12) , getdate(), 109 ) --12 28 2007 1
89
90 select CONVERT(varchar(12) , getdate(), 110 ) --12-28-2007
91
92 select CONVERT(varchar(12) , getdate(), 111 ) --2007/12/28
93
94 select CONVERT(varchar(12) , getdate(), 112 ) --20071228
95
96 select CONVERT(varchar(12) , getdate(), 113 ) --28 12 2007 1
97
98 select CONVERT(varchar(12) , getdate(), 114 ) --10:07:36:623
99
100 select CONVERT(varchar, getdate(), 120 ) --2007-12-28 10:08:56
101
102 select CONVERT(varchar(10), getdate(), 120 ) --2007-12-28
103
104 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') --20071228101012

### SQL日期格式化的用法及转换方法 在 SQL 中,`CONVERT()` 和 `CAST()` 是常用的日期格式化和类型转换函数。以下是关于这些函数的具体说明以及如何实现日期格式化的详细描述。 #### 使用 `CONVERT()` 函数进行日期格式化 `CONVERT()` 函数可以用于将日期转换为特定的数据类型并按照指定样式显示。其基本语法如下: ```sql CONVERT(data_type(length), expression, style) ``` - **data_type**: 表示目标数据类型,例如 `VARCHAR`, `DATETIME` 等。 - **expression**: 需要被转换的表达式或列名。 - **style**: 定义日期/时间输出样式的整数值[^1]。 ##### 常见的 `style` 参数及其对应的日期格式 | Style | 输出格式 | |-------|------------------------------| | 101 | mm/dd/yyyy | | 102 | yyyy.mm.dd | | 103 | dd/mm/yyyy | | 104 | dd.mm.yyyy | | 105 | dd-mm-yyyy | | 112 | yyyymmdd | 例如,如果需要将以默认格式存储的日期转换为 `yyyy-MM-dd` 的形式,则可使用以下语句: ```sql SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS FormattedDate; ``` 此查询会返回类似于 `2023-09-17` 的结果。 #### 不同数据库中的日期格式化差异 不同数据库管理系统 (DBMS),如 MySQL、Hive 或 Athena,在处理时间和日期方面存在一定的区别。下面列举了一些常见 DBMS 下的时间戳格式化方式[^2]: - **MySQL**: ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS CurrentDateTime; ``` - **Hive**: ```sql FROM_UNIXTIME(UNIX_TIMESTAMP('2023-09-17'), 'yyyy-MM-dd HH:mm:ss') ``` - **Athena**: 类似于 Hive,支持通过内置函数完成复杂的日期运算与展示调整。 #### PHP 连接 SQL 数据库时的日期格式转换 当涉及到跨平台开发场景下(比如 PHP 应用程序连接到 SQL Server),可能还需要考虑客户端和服务端之间的兼容性问题。PHP 提供了一系列工具来辅助解析来自 SQL 查询的结果集,并允许开发者自定义呈现逻辑[^3]。 对于简单的日期字段读取操作而言,可以直接利用上述提到的标准 SQL 功能;而对于更复杂的需求,则建议结合编程语言特性共同解决。 ```php <?php $date = $row['date_column']; // Assume this comes from a database query result. $formatted_date = date("Y-m-d", strtotime($date)); echo $formatted_date; // Outputs something like: 2023-09-17 ?> ``` 以上代码片段展示了如何借助 PHP 的 `strtotime()` 及 `date()` 方法重新构建原始 SQL 返回值的表现形态。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值