我被要求做以下练习,我正在努力寻找解决方案:
编写SELECT语句,从Invoices表中返回以下列:
invoice_date列
使用TO_CHAR函数返回invoice_date列及其完整日期和时间,包括24小时上的四位数年份
使用TO_CHAR函数返回invoice_date列及其完整日期和时间,包括带有早/晚指示器的12小时时钟上的四位数年份。
使用CAST函数将invoice_date列返回为VARCHAR2(10)
我能得到的只有:
select invoice_date, to_char(invoice_date, 'DD-MM-YYYY HH:MM:SS') "Date 24Hr"
from invoices
它得到了我的前两列,但是我想不出任何方法来选择第三列。任何帮助都将是伟大的,谢谢。(是的,这是我学校课本上的)
对于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.
'h'表示12小时格式,'hh'表示24小时格式,而'tt'表示AM/PM
SELECT FORMAT(invoice_date, N'dd-MMM-yyyy hh:mm:ss tt')