将日期格式化为MM/DD/YYYY,删除秒和;毫秒,并从军用转换为标准时间SQL

将日期格式化为MM/DD/YYYY,删除秒和;毫秒,并从军用转换为标准时间SQL,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个字段运行时间。我想将日期格式化为MM/DD/YYYY,删除秒和毫秒,并将军用时间转换为标准时间SQL。 例如: Select Run_time from Table 电流输出如下: 2018-06-04 15:18:56.333 我希望输出如下所示: 06/04/2018 3:18pm 任何帮助都将不胜感激 谢谢大家!! ~Adam亚当 格式化日期的正确位置应该在表示层,即前端应用程序中。然而,由于问题不是在哪里做,而是如何在t-sql中做,我们将按原样回答这个问题 在SQL Se

我有一个字段
运行时间
。我想将日期格式化为
MM/DD/YYYY
,删除秒和毫秒,并将军用时间转换为标准时间SQL。
例如:

Select Run_time from Table
电流输出如下:

2018-06-04 15:18:56.333
我希望输出如下所示:

06/04/2018 3:18pm
任何帮助都将不胜感激

谢谢大家!! ~Adam

亚当

格式化日期的正确位置应该在表示层,即前端应用程序中。然而,由于问题不是在哪里做,而是如何在t-sql中做,我们将按原样回答这个问题

在SQL Server中可以使用多种格式转换日期(参考下文),但为了获得准确的结果,需要将其中两种格式串联起来,因为以mm/dd/yyyy格式提供日期的格式没有hh:mm AM/PM格式。以下是t-sql:

SELECT  
    CONVERT(CHAR(10), Run_time ,101) + ' '+ LTRIM(RIGHT(CONVERT(CHAR(19), Run_time ,0),7))
FROM Table
以下是指向页面的链接,该页面显示了t-sql中的不同转换格式:


AM/PM
将由前端应用程序处理。SQL将日期视为一个日期,不管它是什么格式。您知道SQL Server 2008的最终寿命只有一年了吧?2019年7月之后,它将不再获得任何更新。。。甚至连关键的安全补丁都没有。现在升级此服务器应该是您的首要任务。此外,Sql Server 2012及更高版本有一个
FORMAT()
函数,使此问题非常容易解决。您应该避免在Sql Server中更改日期/时间格式;当您将其转换为字符串时,会丢失很多内容,例如,它们不再可排序或可比较。处理此问题的最佳方法是在前端应用程序或报告中格式化日期。