admin

将24小时制转换为12小时制,加上AM / PM指示Oracle SQL

sql

我需要做以下练习,而我正在努力寻找解决方案:

编写一条SELECT语句,从Invoices表返回这些列:

invoice_date列

使用TO_CHAR函数返回带有完整日期和时间的invoice_date列,其中包括24小时制的四位数年份

使用TO_CHAR函数可返回带有完整日期和时间的invoice_date列,其中包括 12小时制带有am / pm指示器 的四位数年份。

使用CAST函数将invoice_date列返回为VARCHAR2(10)

我所能得到的是:

    select invoice_date, to_char(invoice_date, 'DD-MM-YYYY HH:MM:SS') "Date 24Hr"
    from invoices

这获得了我的前两列,但是我找不到任何方法来选择第三列。任何帮助将是巨大的,谢谢。(是的,这是从我学校的教科书上摘下来的)


阅读 193

收藏
2021-05-10

共1个答案

admin

在24小时内,您需要使用HH24而不是HH

在12小时的时间内,AM / PM指示符写为A.M.(如果要在结果中加上句点)或AM(如果不需要)。例如:

SELECT invoice_date,
       TO_CHAR(invoice_date, 'DD-MM-YYYY HH24:MI:SS') "Date 24Hr",
       TO_CHAR(invoice_date, 'DD-MM-YYYY HH:MI:SS AM') "Date 12Hr"
  FROM invoices
;

有关可以TO_CHAR在日期上使用的格式模型的更多信息,请参见http://docs.oracle.com/cd/E16655_01/server.121/e17750/ch4datetime.htm#NLSPG004

2021-05-10