2011-06-02 64 views
0

感謝您的幫助。我無法確定日期列中「值」的類型/格式。我想它是以Julian日期格式。SQL查詢將日期轉換爲其他格式

該列爲paid_month且值如下。

    200901 
        200902 

所以,請以書面形式SQL查詢中的日期列正常日期(MM/DD/YYYY)上述值(大部分在朱利安格式)轉換幫助。

感謝 羅希特

嗨,

我是在給整個信息缺失的遺憾。

1)它是一個Oracle數據庫。 2)給出的列是Paid_Month與值200901,200902

3)我也困惑,上述值給出了& year.Day不給予,如果我的猜測是正確的。

4)如果它不是在朱利安格式,那麼也請你幫我的SQL至少拿到MM/YYYY


我使用的是Oracle數據庫和運行查詢 謝謝,我得到的答案。

* *現在,我必須做相反的意義轉換日期01/09/2010到一個具有6位數字的字符串。 請幫助與syntax- 選擇TO_CHAR(01/01/2010,**

+2

什麼數據庫您使用的?供應商之間轉換日期的功能各不相同。 – Bohemian 2011-06-02 07:19:21

+0

應該說你正在處理哪個口味的SQL .... – tofutim 2011-06-02 07:19:39

+0

我猜'paid_month'實際上是一個(var)char列,而不是一個日期(時間)列也... – 2011-06-02 07:22:18

回答

2

它看起來像YYYYMM - 這取決於你的數據庫變體,請嘗試STR_TO_DATE(paid_month, 'YYYYMM'),然後格式化。

注意:MM/DD/YYYY不是「正常」格式 - 只有美國人使用它。 RLD採用DD/MM/YYYY

+0

我正在使用一個Oracle數據庫,並運行查詢從雙重選擇付款日期= STR_TO_DATE('200901','%Y%m'); – Rohit 2011-06-02 07:52:50

0

對於MySQL,你可以使用STR_TO_DATE功能,請參閱http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_str-to-date

SELECT STR_TO_DATE(paid_month,'%Y%m'); 

聽起來就像是列包含一些正常的日期和一些YYYYMM日期。如果目標是更新整個列,則可以嘗試隔離YYYYMM日期並僅更新這些日期。喜歡的東西:

UPDATE YourTable 
SET paid_month = DATE_FORMAT(STR_TO_DATE(paid_month, '%Y%m'), '%m/%d/%Y') 
WHERE LENGTH(paid_month) = 6 
0
SELECT (paid_month % 100) + "/01/" + (paid_month/100) AS paid_day 
FROM tbl; 

我不知道如何甲骨文符連接字符串。通常你會看到||在SQL:

SELECT foo || bar FROM ... 

或功能:

SELECT cat (foo, bar) FROM ...