0

谢谢你的帮助。我无法确定日期列中“值”的类型/格式。我猜它是朱利安日期格式。

该列是 paid_month,值如下。

                  200901
                  200902

因此,请帮助编写 SQL 查询以将日期列中的上述值(主要是 Julian 格式)转换为正常日期(MM/DD/YYYY)。

谢谢罗希特

你好,

我很抱歉错过了提供全部信息。

1)它是一个 Oracle 数据库。2) 给定的列是 Paid_Month,值为 200901,200902

3)我也很困惑,上面的值给出了月份和年份。如果我的猜测是正确的,则没有给出日期。

4)如果它不是朱利安格式,那么也请帮助我获得至少 mm/yyyy 的 SQL


我正在使用 Oracle DB 并运行查询 THANKS i GOT THE ANSWER。

* *现在,我必须做相反的意思,将日期 01/09/2010 转换为具有 6 位数字的字符串。 请帮助语法 - 选择 to_char(01/01/2010,**

4

4 回答 4

2

它看起来像 YYYYMM - 根据您的数据库变体,尝试STR_TO_DATE(paid_month, 'YYYYMM'),然后格式化。

注意:MM/DD/YYYY 不是“正常”格式——只有美国人使用它。世界其他地区使用 DD/MM/YYYY

于 2011-06-02T07:20:22.957 回答
0
SELECT (paid_month % 100) + "/01/" + (paid_month/100) AS paid_day
FROM tbl;

I'm not sure about how oracle concatenates strings. Often, you see || in SQL:

SELECT foo || bar FROM ...

or functions:

SELECT cat (foo, bar) FROM ...
于 2011-06-02T07:56:07.213 回答
0

对于 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')
于 2011-06-02T07:19:58.860 回答
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
于 2011-06-02T07:23:34.567 回答