簡體   English   中英

SQL 查詢將日期轉換為另一種格式

[英]SQL query to convert Date to another format

謝謝你的幫助。 我無法確定日期列中“值”的類型/格式。我猜它是朱利安日期格式。

該列是paid_month ,值如下。

                  200901
                  200902

因此,請幫助編寫 SQL 查詢以將日期列中的上述值(主要是儒略格式)轉換為正常日期(MM/DD/YYYY)。

謝謝羅希特

你好,

我很抱歉錯過了提供全部信息。

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

3)我也很困惑,上面的值給出了月份和年份。如果我的猜測是正確的,則沒有給出日期。

4)如果它不是朱利安格式,那么也請幫助我 SQL 至少獲得 mm/yyyy


我正在使用 Oracle 數據庫並運行查詢謝謝我得到了答案。

* *現在,我必須做相反的意思,將日期 01/09/2010 轉換為具有 6 位數字的字符串。 請幫助語法 - select to_char(01/01/2010,**

它看起來像 YYYYMM - 根據您的數據庫變體,嘗試STR_TO_DATE(paid_month, 'YYYYMM') ,然后格式化。

注意:MM/DD/YYYY 不是“正常”格式——只有美國人使用它。 世界rest使用DD/MM/YYYY

對於 MySQL 檢查http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

例子:

SELECT DATE_FORMAT(NOW(), '%d/%m/%Y')

For MySQL, you would use the STR_TO_DATE function, see 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
SELECT (paid_month % 100) + "/01/" + (paid_month/100) AS paid_day
FROM tbl;

我不確定 oracle 如何連接字符串。 通常,您會看到 || 在 SQL 中:

SELECT foo || bar FROM ...

或功能:

SELECT cat (foo, bar) FROM ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM