T.H*_*.H. 2 sql-server-2008 sql-server
我想DDMMYYY
从以格式存储日期的字段中获取格式的日期YYYY-MM-DD Timestamp
。(例如,“2018-11-09”应显示“09Nov2018”)。
我知道一种方法是使用可以提取的datepart
函数(https://docs.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql?view=sql-server-2017)单独的年、月和日,然后我可以连接它们。
编辑:我不想使用getdate()
. 有一列具有YYYY-MM-DD Timestamp
格式,我正在从该列中提取'DDMM2018'
. 我在用:
concat
(
CONVERT(varchar, DATEPART(dd,columndate)),
CONVERT(varchar, LEFT(DATENAME(month, DATEPART(month,columndate)),3)) ,
CONVERT(varchar, DATEPART(year, columndate))
) AS trial
Run Code Online (Sandbox Code Playgroud)
这给了我'9Nov2018'
而不是'09Nov2018'
。我打算再次将其转换回`datetype',因为这就是我想要的结果。
有没有其他方法可以实现这一目标?
任何想法/建议非常感谢。
这是一个使用示例GETDATE()
:
SELECT REPLACE(CONVERT(char(11), GETDATE(), 13),' ','');
Run Code Online (Sandbox Code Playgroud)
产量12Nov2018
。三天前,它会屈服09Nov2018
。
要对您的表运行此命令:
SELECT Trial = REPLACE(CONVERT(char(11), YOUR_COLUMN_NAME_HERE, 13),' ','')
FROM dbo.YOUR_TABLE_NAME_HERE;
Run Code Online (Sandbox Code Playgroud)
在 SQL Server 2012 及更高版本中,您可以使用,FORMAT()
但是,就像 Tibor 建议的那样,这会使用更多的 CPU(在我的测试中大约是运行时间的两倍)。
SELECT FORMAT(GETDATE(), 'ddMMMyyyy');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10934 次 |
最近记录: |