2017-09-14 45 views
0

嘗試過的以下語法沒有幫助一個字符串類型列轉換爲日期 - 選擇CURRENT_DATE - 從APAPP100限10雅典娜日期格式無法字符串轉換爲日期甲

選擇INVC_,APIDT,APDDT APAPP100限制10 - 從APAPP100中選擇date_format(b.APIDT,'%Y-%m-%d')b

- 從APAPP100中選擇CAST(b.APIDT AS date)b

- 從APAPP100中選擇日期(b.APIDT)b - 從APA中選擇convert(datetime,b.APIDT) PP100 b

- 選擇date_parse(b.APIDT, '%Y-%間 - %d')從APAPP100 b

從APAPP100

選擇STR_TO_DATE(b.APIDT)b

+0

APIDT(1995年9月27日\t)它的字符串類型 –

回答

1

正確的查詢將字符串解析成日期應該是date_parse

這將導致以下查詢:

select date_parse(b.APIDT, '%Y-%m-%d') from APAPP100 b 

prestodb文檔: 6.10. Date and Time Functions and Operators

+0

在嘗試執行上述選擇時收到以下錯誤'INVALID_FUNCTION_ARGUMENT:格式無效:「12633」在「3」處格式錯誤' –

+0

這看起來像日期格式無效。所以。我寧願看看輸入數據,而不看數據的轉換。 「12633」是任何模式,而不是日期。 –

+0

APIDT 1995-09-27(這是表中的字符串類型)我無法指定列的日期格式和時間戳格式 我收到以下錯誤,當我試圖指定列作爲日期 'FAILED:執行錯誤,從org.apache.hadoop.hive.ql.exec.DDLTask返回代碼1。 java.lang.UnsupportedOperationException:Parquet不支持日期。見HIVE-6384' –

0
SELECT b.APIDT, 
     b.Appppppppp, 
     date_diff('day',current_date, date(b.APIDT)) AS Duedays 
FROM xyz100 a 
WHERE regexp_like(b.apidt, '[0-9]{4}-[0-9]{2}-[0-9]{2}') 

WHERE NOT regexp_like(b.apidt, '[0-9]{4}-[0-9]{2}-[0-9]{2}') 排除垃圾日期

相關問題