在 SQL 中将 DATETIME 转换为 varchar

Convert DATETIME to varchar in SQL

我想将 DATETIME 转换为 VARCHAR 并使用 Friday 07-Feb-20 8:30 AM 这种类型的输出。我试着这样做。但是它没有给出我想要的正确格式。

DECLARE @STARTDATE DATETIME,@SDATE VARCHAR(250)
SELECT @STARTDATE = SESSION_START  FROM SESSION_INFO WHERE SESSION_ID = 2071 //@STARTDATE = 2013-01-28 14:00:00.000
SET @SDATE = CONVERT(VARCHAR,@STARTDATE,100)
PRINT @GOOGLE  //Jan 28 2013  2:00PM

我想要day-mon-year hh:min AM/PM (Friday 07-Feb-20 8:30 AM)这种格式。谢谢。

你想要format,例如

select format(current_timestamp, 'dddd dd-MMM-yy hh:mm tt');

注意:format 的性能不如 convertcast,但它具有您需要的额外灵活性。

您可以按如下方式使用format

FORMAT (SESSION_START, 'dddd dd-MMM-yy hh:mm tt') 

DB<>Fiddle 示例输出