我正在尝试在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
答案 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
中使用113
或Convert 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