tia*_*a97 4 sql oracle datetime
我已经看到了一些类似于我的问题的答案,但我无法让它们起作用.我的查询中有几个日期字段,返回日期和时间,如7/1/2014 12:00:00 AM.有没有办法让字段显示7/1/2014?
SELECT DISTINCT
C.RECEIPTDATE,
(I.CLIENTID ||' - '||PO.CLIENTNAME) AS CLIENT,
D.INVOICEID,
D.SVCFROMDATE,
D.SVCTODATE,
D.SVCCODE
FROM M_EQP_ORDERS
WHERE.....
Run Code Online (Sandbox Code Playgroud)
我基本上想将两个日期字段缩减为较短的日期格式减去时间.
提前致谢!
使用to_char函数:
SELECT DISTINCT
to_char(C.RECEIPTDATE,'DD/MM/YYYY'),
(I.CLIENTID ||' - '||PO.CLIENTNAME) AS CLIENT,
D.INVOICEID,
D.SVCFROMDATE,
D.SVCTODATE,
D.SVCCODE
FROM M_EQP_ORDERS
WHERE.....
Run Code Online (Sandbox Code Playgroud)
只需使用功能TRUNC。
SELECT DISTINCT
TRUNC(C.RECEIPTDATE),
(I.CLIENTID ||' - '||PO.CLIENTNAME) AS CLIENT,
D.INVOICEID,
TRUNC(D.SVCFROMDATE),
TRUNC(D.SVCTODATE),
D.SVCCODE
FROM M_EQP_ORDERS
WHERE.....
Run Code Online (Sandbox Code Playgroud)
取决于数据类型。
如果列是DATE数据类型,那么,正如已经建议的那样,TRUNC将完成显示工作。但是,如果您的区域设置特定的 NLS 日期设置不同,那么您仍然会看到时间部分为午夜。
否则,您需要TO_DATE正确使用FORMAT并应用TRUNC它。
更新
如果您只想显示,请使用TO_CHAR,否则,如果您的WHERE子句中有过滤器,那么记住TO_CHAR不会返回DATE,它将其转换为文字。