SQL只取日期的年月日部分

本文介绍了使用SQL进行日期格式转换的各种方法,包括不同日期分隔符的使用,如短横线、斜杠、点等,并提供了具体示例来展示如何通过SQL函数实现日期格式的多样化呈现。
方法一:
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\')
20040912110608

select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )
20040912

select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12

select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
方法二:
declare @tt varchar(4),@pp varchar(8) ,@ss varchar(4),@aa varchar(16)

set @tt=rtrim(cast(month(getdate()) as varchar(10)))
set @ss=rtrim(cast(day(getdate()) as varchar(10)))
select @pp=rtrim(cast(year(getdate()) as varchar(10)))
select @aa=@pp+@tt+@ss
select @aa
只显示年月,不显示日:select datepart(year,getdate())*100+datepart(month,getdate())
200811
SQL Server 中,虽然没有直接提供 `EXTRACT()` 函数来提日期的组成部分,但可以通过其他内置函数实现这一目标。以下是具体的方法: ### 使用 DATEPART() 提年、月、日 `DATEPART()` 是 SQL Server 的一种常用方法,用于从日期中提特定的部分。其语法如下: ```sql DATEPART(datepart, date) ``` 其中,`datepart` 表示要提的时间部分(如年、月、日),而 `date` 则是要操作的具体日期。 #### 示例代码 以下是从某个日期字段中分别提年份、月份和日子的例子: ```sql SELECT DATEPART(year, '2023-10-07') AS YearPart, DATEPART(month, '2023-10-07') AS MonthPart, DATEPART(day, '2023-10-07') AS DayPart; ``` 上述查询的结果将是: | YearPart | MonthPart | DayPart | |----------|-----------|---------| | 2023 | 10 | 7 | 此方法基于提供的引用内容[^3]进行了扩展说明。 --- ### 构造完整的日期字符串 如果需要将这些部分组合成一个格式化的字符串,则可以使用 `CONCAT()` 或者 `FORMAT()` 方法。例如: ```sql -- 使用 CONCAT() SELECT CONCAT(DATEPART(year, GETDATE()), '-', FORMAT(DATEPART(month, GETDATE()), 'D2'), '-', FORMAT(DATEPART(day, GETDATE()), 'D2')) AS FormattedDate; -- 使用 FORMAT() SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS FormattedDate; ``` 这两种方式都可以生成类似于 `'YYYY-MM-DD'` 格式的日期字符串。 --- ### 总结 尽管 SQL Server 不支持标准 SQL 的 `EXTRACT()` 函数[^4],但是通过 `DATEPART()` 可以轻松完成类似的任务。对于更复杂的场景或者跨数据库兼容的需求,可以选择更为灵活的方式构建逻辑。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值