【问题标题】:How do I change the date time output for a column如何更改列的日期时间输出
【发布时间】:2021-07-14 15:20:04
【问题描述】:

对于这个简单的问题,我深表歉意,但我对在“现实世界”中使用 MS SQL 还很陌生,并且在日期/时间方面遇到了问题。我没有在论坛中看到我的问题

我的任务是将 Oracle 查询转换为 MS SQL 查询。我的表中有一个名为“updatedtm”的列,其格式为“yyyy/mm/dd hh:ss:mmm”,我需要将输出更改为“dd/mm/yyyy hh:ss:mm”格式

这是执行此操作的查询的 Oracle 部分:

select p.PERSONNUM, 
   p.fullnm as personfullname, 
   replace(t.shortnm,'_',' ') as license, 
   **to_char(s.updatedtm,'mm/dd/yyyy hh24:mi:ss') as updatedtm**

我一直在使用 CONVERT 并且可以将今天的日期转换为该格式,但是如何在我的输出中为 updatedtm 列获取该列!

帮助,我花了太多时间搜索这个..

【问题讨论】:

  • “我的表中有一个名为“updatedtm”的列,其格式为“yyyy/mm/dd hh:ss:mmm”,我需要将输出更改为“dd/”格式mm/yyyy hh:ss:mm'" 日期和时间数据类型没有格式。如果您的数据存储为格式化字符串,根据定义,它不是日期和时间,并且您的设计存在缺陷。您应该修复设计并使列成为日期和时间数据类型。格式化用于表示层,而不是 RDBMS。但是,如何做到这一点是特定于应用程序的。
  • 列的数据类型是什么?
  • 提问时,您需要提供minimal reproducible example: (1) DDL 和样本数据填充,即 CREATE 表和 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上面#1 中的样本数据。 (4) 您的 SQL Server 版本 (SELECT @@version;)。

标签: sql-server datetime


【解决方案1】:

如果您只想按照您的描述格式化时间,您可以尝试 FORMAT() 函数。

例如,试试,

SELECT FORMAT(getdate(), 'dd/MM/yy HH:mm:ss') as updatedtm

【讨论】:

    猜你喜欢
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    相关资源
    最近更新 更多