【问题标题】:how to convert '2016-06-10 09:30:04.000' to '06/10/2016 9:30 AM' in SQL?如何在 SQL 中将 '2016-06-10 09:30:04.000' 转换为 '06/10/2016 9:30 AM'?
【发布时间】:2018-07-10 09:37:30
【问题描述】:

如何在 SQL 中将此格式 '2016-06-10 09:30:04.000' 转换为 '06/10/2016 9:30 AM' 这种格式。

【问题讨论】:

  • 将光标悬停在您添加到问题中的 SQL 标记上。阅读工具提示后,请编辑您的问题以指定您使用的 DBMS。然后指定您是否尝试更改表的内容(这会误解日期数据类型的工作方式),或者这是否只是为了在查询输出中进行格式化。
  • 如果您使用适当的日期类型(datetimedatetime2),它们没有格式。它们存储自过去某个固定点以来经过的间隔数。当您看到 2016-06-10 09:30:04.000 之类的内容时,请意识到某些 字符串转换 已应用于该值,以便使其对您可显示。但它不是实际存储的内容。
  • 您使用的是哪个 dbms?在日期/时间方面,许多产品远不符合 ANSI SQL。
  • 在 Oracle 和 Postgres 中,您可以将输入字符串转换为时间戳,然后使用 to_char() 对其进行格式化

标签: sql datetime time


【解决方案1】:

如果你的数据库是 SQL Server,试试这个

 SELECT CONVERT(VARCHAR(30),CONVERT(DATE,'2016-06-10 09:30:04.000'),101)+' '+ 
 CAST(CONVERT(varchar(25),CAST(RIGHT('2016-06-10 09:30:04.000',12) AS TIME),100) AS VARCHAR)

【讨论】:

    猜你喜欢
    • 2020-03-18
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 2018-12-01
    • 2017-12-19
    • 2016-12-07
    • 2016-07-27
    • 1970-01-01
    相关资源
    最近更新 更多