我正在尝试编写一个查询,该查询显示带有"January 3, 2011"
日期格式的最新书籍,但当尝试格式化日期时,我总是会遇到错误。
下面是未格式化日期的工作查询:
SELECT title, pubdate
FROM books
WHERE pubdate =
( SELECT MAX(pubdate)
FROM books );
发布于 2018-10-03 09:07:22
如果pubdate
被定义为DATE
列,则可以将其格式化为to_char
to_char(pubdate, 'fmMonth dd, YYYY') as pubdate
这会将其转换为指定格式的字符串(但允许语言默认为用户的nls_date_language
设置)。
Oracle中的日期不是以某种格式存储的字符串。它们包含二进制数据,在显示它们时,必须按照需要对它们进行格式化。(有时,人们将日期存储为字符串,这不仅是一个糟糕的想法,而且当人们要求对日期进行不同的格式化时,会造成混乱。)
发布于 2018-10-03 07:03:09
使用To_char
将Datetime
转换为expect格式字符串。
这是一个样本。
CREATE TABLE books(pubdate Date, title varchar(50));
insert into books values ('18-Mar-06','A');
insert into books values ('11-Nov-06','B');
查询1
SELECT title,To_char(pubdate,'MON DD, YYYY') pubdate
FROM books
WHERE pubdate =
(SELECT MAX(pubdate)
FROM books)
| TITLE | PUBDATE |
|-------|--------------|
| B | NOV 11, 2006 |
https://stackoverflow.com/questions/52629683
复制相似问题