SqlServer中取日期问题

本文介绍 SQL Server 中日期时间格式转换的方法,特别是使用 CONVERT 函数将日期转换为不同格式的字符串表示。提供了多种风格的日期输出样式及其对应的转换代码。

 在SQLSERVER中也有和Oracle相类似的函数,写法如下:
CONVERT(varchar(10),addtime,120)    2005-12-30
不带世纪数位(yy) | 带世纪数位(yyyy) | 标准  |  输入/输出**
1                                          101              美国      mm/dd/yyyy
2                                          102              ANSI     yy.mm.dd
3                                          103        英国/法国   dd/mm/yy
4                                          104              德国      dd.mm.yy
5                                          105            意大利    dd-mm-yy
6                                          106                            dd mon yy
7                                          107                            mon dd, yy
8                                          108                            hh:mm:ss
9                                          109                            mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10                                       110              美国       mm-dd-yy
11                                       111              日本      yy/mm/dd
12                                       112              ISO        yymmdd
13                                       113                            毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14                                       114                            hh:mi:ss:mmm(24h)
20                                       120                            yyyy-mm-dd hh:mm:ss[.fff]
21                                       121                            yyyy-mm-dd hh:mm:ss[.fff]
                                            126             ISO8601 yyyy-mm-dd Thh:mm:ss:mmm
                                            130           科威特    dd mon yyyy hh:mi:ss:mmmAM
                                            131           科威特    dd/mm/yy hh:mi:ss:mmmAM

只显示日期部分

select CONVERT(varchar(10),   getdate(),120)

### SQL Server 提日期的日部分 在 SQL Server 中,可以通过多种方式提日期的天数部分。以下是两种常用的方法: #### 方法一:使用 `DAY()` 函数 `DAY()` 是一个内置函数,用于从给定的日期中提日的部分。该函数接受一个日期类型的参数并返回其对应的日数值。 示例代码如下: ```sql SELECT DAY(GETDATE()) AS DayPart; ``` 此查询会返回当前系统的日期中的日部分[^1]。 --- #### 方法二:通过 `CONVERT()` 或 `FORMAT()` 进行格式化 除了直接使用 `DAY()` 函数外,还可以利用字符串转换的方式实现相同的效果。例如,可以借助 `CONVERT()` 将日期格式化为特定形式后再提日部分。 示例代码如下: ```sql -- 使用 CONVERT() SELECT CAST(CONVERT(VARCHAR, GETDATE(), 103) AS INT) % 100 AS DayPart; -- 使用 FORMAT() (适用于 SQL Server 2012 及以上版本) SELECT FORMAT(GETDATE(), 'dd') AS DayPart; ``` 这里需要注意的是,`FORMAT()` 虽然功能强大,但在性能上可能如其他方法高效[^4]。 --- #### 注意事项 如果输入的日期字段并非标准的 `DATETIME` 类型,则需先将其转换为合适的日期类型再执行上述操作。例如: ```sql DECLARE @DateValue NVARCHAR(50) = '2023-10-15'; SELECT DAY(CAST(@DateValue AS DATETIME)) AS DayPart; ``` 此外,在某些场景下,也可以结合 `DATEPART()` 来完成类似的提任务。例如: ```sql SELECT DATEPART(DAY, GETDATE()) AS DayPart; ``` 这与 `DAY()` 的效果完全一致[^1]。 --- ### 总结 无论是采用专门设计的 `DAY()` 函数还是基于字符串处理逻辑的解决方案,都可以有效满足从指定日期中提日部分的需求。具体选择决于实际应用场景和个人偏好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值