在 SQL Server 中连接字符串日期

新手上路,请多包涵

我有以下数据:

 KEY        ID         DATE
123456789  09BA2038   01-01-2017

我想连接它,但保留日期的原始格式。当我尝试:

 CONCAT(Key, '-', ID, '-', DATE)

它给了我一个输出

123456789-09BA2038-Jan 01 2017 11:00AM

但我希望输出是

123456789-09BA2038-01-01-2017

原文由 PRIME 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 855
2 个回答

转换日期,我猜你想要格式 mm-dd-yyyy,如果是这样:

 CONCAT([key],'-',[ID],'-',CONVERT(VARCHAR(10), [DATE], 110))

如果你想要 dd-mm-yyyy 它是:

 CONVERT(VARCHAR(10), [DATE], 105)

原文由 Keith 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您使用的是 SQL Server 2012 或更新版本,则可以使用 FORMAT 将日期或日期时间更改为您喜欢的格式的 varchar。

 select CONCAT([Key],'-',ID,'-',FORMAT([DATE],'MM-dd-yyyy')) as Key2
from (values (123456789,'09BA2038',convert(date,'2017-01-15',126))) v([Key],ID,[DATE]);

结果:

 Key2
123456789-09BA2038-01-15-2017

或者,您可以使用 CONVERT 来代替美国日期格式的 110 样式。

原文由 LukStorms 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进