在SQL中格式化时间?

时间:2017-03-23 21:37:43

标签: sql sql-server database database-design

如何将时间格式化为仅显示小时和分钟? 例如,像LessonTime TIME(0),这样的ID显示12:00而不是12:00:00。

USE [Assignment]
GO
PRINT 'Creating database tables...'
CREATE TABLE [PupilDetails](
Pupil_ID INT  NOT NULL, 
FName VARCHAR(20),
LName VARCHAR(20),
DOB DATE,
LessonDay VARCHAR (10),
LessonTime TIME(0),
GuardianFname VARCHAR(20),
GuardianLname VARCHAR(20),
ContactNum VARCHAR(15),
AddressLine1 VARCHAR(20),
AddressLine2 VARCHAR(20),
Teacher_ID INT NOT NULL,
PRIMARY KEY (Pupil_ID),
CONSTRAINT FK_PupilDetails FOREIGN KEY (Teacher_ID)
REFERENCES Teachers(ID)

3 个答案:

答案 0 :(得分:2)

timedatetime数据类型的值未在sql server中以格式存储。如果您希望以不同的格式查看时间,则可以在转换为varchar(或nvarcharnchar,{{1时操纵时间和日期时间数据类型的显示方式使用一些内置函数的数据类型。

通常使用convert() styles

char

返回:select convert(char(5),convert(time(0),sysdatetime()))

在sql server 2012+中,您可以使用format()

22:01

返回:select format(sysutcdatetime(),'HH:mm')

22:01可能会慢一点,请看一下:format() is nice and all, but… - Aaron Bertand

答案 1 :(得分:0)

SELECT LEFT(CAST(getdate() AS Time),5) AS Hours

答案 2 :(得分:-2)

选择格式(SYSDATETIME(),' h:mm tt')