【发布时间】: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