2013-11-05 47 views
0

我有SQL查詢在MySQL:如何在Oracle中轉換日期?

SELECT 
    distinct 
    us.user_id as user_id, 
    us.ab_id, 
    users.name, 
    users.role, 
    users.is_admin, 
    DATE_FORMAT('2013-11-05T10:06:21+04:00', '%Y-%m') as month_m 
FROM attach_offices as us 
LEFT JOIN users ON users.id = user_id 
WHERE us.`ab_id` = 999999999 and 
DATE_FORMAT('2013-11-05T10:06:21+04:00', '%Y-%m') between DATE_FORMAT(dt_begin, '%Y-%m') and DATE_FORMAT(`dt_end`, '%Y-%m') 

如何將它轉換到Oracle 11g?我寫這樣的東西:

SELECT 
    distinct 
    attach_offices.user_id as user_id, 
    attach_offices.ab_id, 
    users.name, 
    users.role, 
    users.is_admin, 
    to_date('2013-11-05T10:06:21+04:00', 'YYYY-MM') as month_m  
FROM attach_offices 
LEFT JOIN users ON users.id = user_id 
WHERE attach_offices.ab_id = 999999999 and 
to_date('2013-11-05T10:06:21+04:00', 'YYYY-MM') between to_date(to_char(dt_begin, 'YYYY-MM'), 'YYYY-MM') and to_date(to_char(dt_end, 'YYYY-MM'), 'YYYY-MM') 

但它不起作用。 日期的問題,當我使用2013-11-05T10:06:21+04:00這是行不通的,但是當我使用2013-11是工作

回答

0

因爲TO_DATE將格式轉換給STRINGDATE,您指定。
DATE_FORMAT然而,如指定的格式DATE。

所以,你必須下列選項:
1.如果你想獲得所需DATE一些特殊製作的STRING,那麼你TO_CHAR(DATE, '<format>')
2. go如果要轉換給STRINGDATE,你去TO_DATE(string,'<format that describes string>')
3.如果你需要一個特製的STRING重新格式化爲另一個STRING,那麼你做兩個。首先將其轉換爲日期,如中所述,然後轉換回字符串,如中所述,並帶有所需的格式。
4.還有一種情況 - 如果要更改輸出格式,則需要ALTER SESSION變量NLS_DATE_FORMAT。

-1

我是做這樣的事情,但它似乎沒有幹,碼味:

SELECT 
    distinct 
    attach_offices.user_id as user_id, 
    attach_offices.ab_id, 
    users.name, 
    users.role, 
    users.is_admin, 
    to_date(to_char(to_date('2013-11-05T10:06:21+04:00', 'YYYY-MM-DD"T"HH24:MI:SS"+04:00"'), 'YYYY-MM'),'YYYY-MM') as month_m   
FROM attach_offices 
LEFT JOIN users ON users.id = user_id 
WHERE attach_offices.ab_id = 999999999 and 
to_date(to_char(to_date('2013-11-05T10:06:21+04:00', 'YYYY-MM-DD"T"HH24:MI:SS"+04:00"'), 'YYYY-MM'),'YYYY-MM') between to_date(to_char(dt_begin, 'YYYY-MM'), 'YYYY-MM') and to_date(to_char(dt_end, 'YYYY-MM'), 'YYYY-MM') 
+0

使用註釋要求更多的信息,您可以編輯你的問題更多的細節進行更新。至於下面的代碼問題,第一個是你從哪裏得到這個日期字符串?它真的是一個字符串?你想得到什麼選擇結果? – Nagh