SQL查询将日期转换为其他格式

SQL查询将日期转换为其他格式

问题描述:

感谢您的帮助。我无法确定日期列中“值”的类型/格式。我想它是以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

对于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') 

它看起来像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

对于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 

SELECT (paid_month % 100) + "/01/" + (paid_month/100) AS paid_day 
FROM tbl; 

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

SELECT foo || bar FROM ... 

或功能:

SELECT cat (foo, bar) FROM ...