SQL:如何在Oracle中将整数列转换为列名称中有yyyymm值的日期

mrfwxfqh  于 2023-06-05  发布在  Oracle
关注(0)|答案(3)|浏览(259)

Hi我有一个整数类型的列值,如202201,202202直到202306(yyyymm)。列名是period_int,我想将其转换为date,以便以格式(01/01/2022)(mmddyyyy)获得它
尝试datetime没有工作,因为我有列的名称与值,而不是一个单一的值。我必须取此值并在Tableau筛选器中表示

bprjcwpo

bprjcwpo1#

看看这是否有帮助:
将整数值转换为varchar,并将结果与'01'连接,然后将其转换为日期。

SELECT CONVERT(date, CONVERT(varchar(8), period_int) + '01', 112)
FROM <your table>

这将给予2022-02-01
如果你希望结果是dd/mm/yyyy,就像这样使用它:

SELECT CONVERT(varchar, CONVERT(date, CONVERT(varchar(8), 202202) + '01', 112), 103);

Check this link for more formats used to convert date to varchar or vice versa

qij5mzcb

qij5mzcb2#

这适用于mysql,但您应该标记您正在使用的DBMS

select date_format(date(concat([date as integer],'01')),'%m/%d/%Y');

给你

01/01/2022
rnmwe5a2

rnmwe5a23#

首先使用to_date()将字符串转换为日期,然后使用to_char()将转换后的日期转换为所需的格式:

select to_char(to_date(period_int || 01, 'yyyymmdd'), 'mm/dd/yyyy')
from mytable;

相关问题