如何在sql中获取自定义日期时间格式

时间:2014-11-19 05:52:51

标签: sql-server

我正在尝试在Sql中转换日期时间,

我想要这样的格式: - DD-MM-yyyy 00:00 (24 Hours) for example :- 12-Nov-2014 00:00

我试过这个:CONVERT(varchar(16), IFD.dtDateOfIncident, 113) As EventDate,但我没有成功,我也推荐了这个http://www.sql-server-helper.com/tips/date-formats.aspx,但我找不到任何方法或关键字。

请帮帮我

此致 VINIT

5 个答案:

答案 0 :(得分:4)

declare @dt varchar(20) = '12-Nov-2014 24:59'

Select Replace(Convert(varchar(17),GETDATE(),106),' ','-') + ' ' + Convert( varchar(5) , GETDATE(),108)

答案 1 :(得分:1)

varchar(16)的问题。 varchar长度必须为17才能满足您的要求。

CONVERT(varchar(17), IFD.dtDateOfIncident, 113)


SELECT REPLACE(CONVERT(varchar(11), IFD.dtDateOfIncident, 106) , ' ', '-') 
       + ' ' + CONVERT(varchar(5), IFD.dtDateOfIncident, 108) 

答案 2 :(得分:1)

不要在SQL中这样做。使用您在前端应用程序中使用的任何语言来执行此操作。如果您的表示层是网络,请使用Moment.js

moment().format('DD-MM-YYYY, HH:mm'); 

在C#中你可能会这样做

DateTime.Now.ToString("dd-MM-yyyy HH:mm")

显示格式是表示层的考虑因素。

答案 3 :(得分:1)

试试这个。您可以在13中使用113Convert Function。增加varchar

convert的长度
select convert(varchar(30),GETDATE(),113) --19 Nov 2014 11:26:46:420
select convert(varchar(30),GETDATE(),13)  --19 Nov 2014 11:26:46:420

更新:在-

中获取date
select replace(left(convert(varchar(30),GETDATE(),113),11),' ','-')+RIGHT(convert(varchar(30),GETDATE(),113),13)

输出: 19-Nov-2014 11:32:17:890

答案 4 :(得分:1)

如果您正在使用SQL Server 2008及更高版本

,请尝试以下查询
select replace(convert(varchar(17),IFD.dtDateOfIncident,106), ' ','-') + ' ' + 
       Cast(convert(Time(0),GETDATE(),108) as Varchar) As EventDate

尝试SQL Server 2000及以上版本

select replace(convert(varchar(17),IFD.dtDateOfIncident,106), ' ','-') + ' ' + 
       convert(Vacrhar(8),IFD.dtDateOfIncident,108) As EventDate

以上查询将显示重新匹配 2014年11月19日11:10:45