2012-02-13 89 views

回答

0

在MySQL你会使用这个:

select time_format('12:34:44','%H:%i'); 
+0

我敢肯定'time_format'不能在SQL Server中提供 – LittleBobbyTables 2013-05-23 20:57:14

0

如果你有时间格式时间在MySQL中,你可以使用SELECT TIME_FORMAT (time_column,"%H:%i") from table; 参考http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

+0

问题被标记SQL服务器的MySQL不.... – 2014-01-16 18:01:17

+0

@BobVale不会在问题主题中或者至少在文本中指定这个重要的信息是个好主意? – 2014-01-17 13:54:42

+0

可能,但问题被标记为sql-server – 2014-01-17 15:57:56

3
CONVERT(char(5), SomeDateTimeValue, 108) 

CAST and CONVERT MSDN上

+0

我试过这个:“select \t CONVERT(char(5),'2014-01-28 23:07:06.000',108)”,并得到“2014- “!! – 2014-01-28 16:02:57

+1

@AfshinMoazami:因为你正在转换一个字符串,而不是一个日期时间值。这个工作...'select \t CONVERT(char(5),CAST('2014-01-28 23:07:06.000'AS datetime),108)'或'select \t CONVERT(char(5),GETDATE() ,108)'。 – gbn 2014-01-30 08:34:33

0

您可以使用DATEPART transact sql功能Datepart in msdn

您可以查看各种组合以实现您所需的功能。

0

如果底层表示法是DATETIME,那么您可以尝试一下(通过调用GETDATE()来模拟)。

SELECT DATEPART(hour, GETDATE()) AS MyHours, 
     DATEPART(minute, GETDATE()) AS MyMinutes 
+0

如果时间是12:01,我不想将它显示为12:1? – 2014-01-28 16:01:50

0

假设您的列被称为timeCol,这将工作:

select RIGHT('00' + cast (DATEPART(hour,timeCol) as varchar(2)), 2) + ':' + 
     RIGHT('00' + cast (DATEPART(minute,timeCol) as varchar(2)), 2), 
from ... 

日期部分通话让你一小时&分钟,带前导零的右焊盘如果值是唯一的一个数字。

0

这对我的作品好:

SELECT SUBSTRING(convert(varchar, YourColumnName ,108),1,5) as 'StartDate' 
FROM YourTableName 
相关问题