更新
一旦您将值设为 Date 数据类型,要获得 dd-MMM-yy 格式,您还可以使用 convert 和 replace 的组合:
DECLARE @Date as datetime = GETDATE();
SELECT @Date As Original,
REPLACE(CONVERT(char(9), @Date, 6), ' ', '-') As Result
将返回:
Original Result
01.05.2018 08:08:29 01-May-18
注意:由于所需的结果格式从 mmddyyy 更改为 ddmmyy,我已经更新了我的答案 - 我改变的只是转换样式 - 从 1 到 3。
原答案
如果您的原始值是DateTime 类型,则它没有显示值。您只需要使用convert 和replace:
DECLARE @Date as datetime = GETDATE();
SELECT @Date As Original,
REPLACE(CONVERT(char(8), @Date, 3), '/', '') As Result
Original Result
26.04.2018 06:56:19 042618
如果你的原始值是字符串类型,你先将其转换为datetime,然后再转换回具有所需显示格式的字符串:
DECLARE @StringDate as char(23) = '2018-04-26 07:55:43.003'
SELECT @StringDate As Original,
REPLACE(CONVERT(char(8), CONVERT(datetime, @StringDate, 120), 3), '/', '') As Result
Original Result
2018-04-26 07:55:43.003 042618
在 Sql Server 2012 或更高版本中,您可以使用 Format 将 datetime 转换为您想要的任何字符串表示形式,但 Format 比 convert 和 replace 慢,所以如果您正在使用它一张大桌子,您应该考虑改用旧的convert。
欲了解更多信息,请阅读 Aaron Bertrand 的FORMAT() is nice and all, but…