2013-10-10 70 views
0

我試圖從訂單中放入特定的月份和年份(2012年2月)獲取記錄。包含該數據的列(Dtordered)當前處於DD/Mon/YYYY格式。我需要以MONTH DD,YYYY格式顯示日期。我將如何去做這件事?我知道我需要使用WHERE子句從日期和年份獲取記錄。在僞,這是我正在嘗試。Oracle 11g SQL - DD/MON/YYYY到MONTH DD,YYYY和WHERE月份條款

SELECT Idbasket, Idshopper, Dtordered(MONTH DD, YYYY) 
FROM bb_basket 
WHERE Dtordered(Mon)='Feb' AND Dtordered(YYYY)=2012; 

我該如何糾正我的格式和條件?我甚至關閉?

+1

Dtordered的數據類型是什麼? – Noel

回答

2

假設Dtordered存儲爲DATE(我希望如此,因爲它是一個日期)

[如果不是的話,你必須在你需要的Dtordered合作,利用TO_DATE(Dtordered, 'DD/Mon/YYYY'),但是這是很糟糕]

使用TO_CHAR以給定格式顯示日期。

您可以使用

TO_CHAR(<yourdate>, 'YYYYMM') = '201202' 得到一個年份和月份值。

EXTRACT(year from <yourdate>) = 2012 and EXTRACT(month from <yourdate>) = 2 

所以

SELECT Idbasket, Idshopper, TO_CHAR(Dtordered, 'MONTH DD, YYYY') 
FROM bb_basket 
WHERE TO_CHAR(Dtordered, 'YYYYMM')='201202'; 
+0

Oracle沒有MONTH或YEAR功能。 – Noel

+0

@ Ramblin'Man哦,似乎你說得對,我正在混合我的dbms –

0

一個提示使用to_char功能非常簡單,看:

對於月份:

TO_CHAR(YOUR_FIELD, 'MM')= 09

對於年份:
TO_CHAR(YOUR_FIELD, 'YYYY')= 2014

爲天:

TO_CHAR(YOUR_FIELD, 'DD')= 25

用於說明月份:

TO_CHAR(YOUR_FIELD, 'MON')= 'FEB'

TO_CHAR(YOUR_FIELD, '月')LIKE '%FEBRUARY%'

TO_CHAR funcion由SQL語言而不是支載由一個特定的數據庫。

One adiction information。在oracle數據庫中獲取當前日期的月描述:

select to_char(sysdate,'MON')from dual; - 今天返回SET
select to_char(sysdate,'MONTH')from dual; - 今日退貨SETEMBER

我希望能幫助更多人...

絕對!