SQL Server日期时间格式不起作用

时间:2016-05-16 10:45:40

标签: sql sql-server datetime

TimeOpened是我的数据库表中datetime2类型的列。

我的转换声明是:

convert(nvarchar, TimeOpened, 114)

我的输出应该是没有日期的时间(基于24小时),即

5/16/2016 1:38:00 PM --> 13:38:00  

但实际上我得到的输出是01:38:00

为什么会这样?

此外,我想知道如何删除秒。基本上我希望我的输出为13:38

感谢。

5 个答案:

答案 0 :(得分:1)

试试这个(SQL Server 2012或更高版本):

SELECT FORMAT(TimeOpened,'dd/MM/yyyy HH:mm:ss') 

答案 1 :(得分:1)

对于sql server 2008,您可以转换为time,然后转换为char(5)

SELECT CONVERT(char(5), CAST(TimeOpened As Time))

答案 2 :(得分:0)

SELECT FORMAT(cast(TimeOpened as time),N'hh\.mm') as mytime

您可以在https://msdn.microsoft.com/en-us/library/hh213505.aspx#ExampleD

上看到更多示例

答案 3 :(得分:0)

试试这个

SELECT LEFT(CONVERT(VARCHAR,TimeOpened,108),5)

答案 4 :(得分:0)

解决了它。 问题是,当我插入日期时,我使用了c#datetime.now而不是getdate()