Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server日期时间格式不工作_Sql_Sql Server_Datetime - Fatal编程技术网

SQL Server日期时间格式不工作

SQL Server日期时间格式不工作,sql,sql-server,datetime,Sql,Sql Server,Datetime,TimeOpen是我的Database表中datetime2类型的列 我的convert语句是: convert(nvarchar, TimeOpened, 114) 我的输出应该是基于24小时的时间,没有日期,即 5/16/2016 1:38:00 PM --> 13:38:00 但实际上,我得到的输出是01:38:00 为什么会这样 此外,我想知道如何删除秒。基本上我希望我的输出是13:38 谢谢。请尝试此SQL Server 2012或更高版本: SELECT FORMAT(

TimeOpen是我的Database表中datetime2类型的列

我的convert语句是:

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

5/16/2016 1:38:00 PM --> 13:38:00  
但实际上,我得到的输出是01:38:00

为什么会这样

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


谢谢。

请尝试此SQL Server 2012或更高版本:

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

对于sql server 2008,您可以强制转换为时间,然后转换为字符5:

你可以在

上看到更多的例子,试试这个

SELECT LEFT(CONVERT(VARCHAR,TimeOpened,108),5)
解决了。
问题是,当我插入日期时,我使用了c datetime。现在,您是否尝试过convertnvarchar,TimeOpened,108?我刚刚尝试过,它以24小时格式获取时间?知道为什么会发生这种情况吗?尝试选择LEFTCONVERTVARCHAR,getdate,108,5只获取HH:MM,您可以这样做:选择TimeOpened,substringCONVERTVARCHAR,TimeOpenede,108,0,6,因为您的表格格式中的时间已被建议并拒绝,因为OP使用的版本早于2012…请接受您自己的答案,以便人们知道问题已经解决。
SELECT FORMAT(cast(TimeOpened as time),N'hh\.mm') as mytime
SELECT LEFT(CONVERT(VARCHAR,TimeOpened,108),5)