DB2:子串一个数字
在我的数据集中,我有一个变量(数字),它是年+月,称为年/月,值为201702、201703等 通常我的代码如下所示:DB2:子串一个数字,db2,Db2,在我的数据集中,我有一个变量(数字),它是年+月,称为年/月,值为201702、201703等 通常我的代码如下所示: select year_month ,variable2 ,variable3 from dataset select TIMESTAMP_FORMAT(cast(year_mont as varchar(6)), 'YYYYMM') as YouTimeStamp from yourtable 我希望从year\u month变量中提取月份和年份,但当year\
select
year_month
,variable2
,variable3
from dataset
select TIMESTAMP_FORMAT(cast(year_mont as varchar(6)), 'YYYYMM') as YouTimeStamp
from yourtable
我希望从year\u month变量中提取月份和年份,但当year\u month是数字时,我不确定如何执行此操作。
编辑:不是重复的问题,不同的问题,我不关心日期。从整数中提取日期部分
SELECT year_month/100,MOD(year_month,100)
要将整数完全转换为日期,请执行以下操作:
SELECT TO_DATE(CHAR(year_month),'YYYYMM')
从整数中提取日期部分的步骤
SELECT year_month/100,MOD(year_month,100)
要将整数完全转换为日期,请执行以下操作:
SELECT TO_DATE(CHAR(year_month),'YYYYMM')
这种方法也有可能:
select left(cast(year_mont as varchar(6)), 4) as YYYY,
right(cast(year_mont as varchar(6)), 2) as MM from yourtable
您可以有这样的时间戳:
select
year_month
,variable2
,variable3
from dataset
select TIMESTAMP_FORMAT(cast(year_mont as varchar(6)), 'YYYYMM') as YouTimeStamp
from yourtable
或是约会:
select Date(TIMESTAMP_FORMAT(cast(year_mont as varchar(6)), 'YYYYMM')) as YouTimeStamp
from yourtable
这种方法也有可能:
select left(cast(year_mont as varchar(6)), 4) as YYYY,
right(cast(year_mont as varchar(6)), 2) as MM from yourtable
您可以有这样的时间戳:
select
year_month
,variable2
,variable3
from dataset
select TIMESTAMP_FORMAT(cast(year_mont as varchar(6)), 'YYYYMM') as YouTimeStamp
from yourtable
或是约会:
select Date(TIMESTAMP_FORMAT(cast(year_mont as varchar(6)), 'YYYYMM')) as YouTimeStamp
from yourtable
可能重复的。。。你为什么要这样做?如果您只想查询特定范围(例如,仅某一年),将其放入
WHERE
子句中,最好通过构造边界来实现,因为基于函数的限制通常会使索引的使用无效。如果这只是为了最后的展示,那么你应该很好。不要粗鲁,但简单的回答是:因为我可以。我正在学习,并试图尽可能多地吸收信息:)可能重复的。。。你为什么要这样做?如果您只想查询特定范围(例如,仅某一年),将其放入WHERE
子句中,最好通过构造边界来实现,因为基于函数的限制通常会使索引的使用无效。如果这只是为了最后的展示,那么你应该很好。不要粗鲁,但简单的回答是:因为我可以。我正在学习,并尝试尽可能多地吸收信息:)int(year_month/100)as year,year_month%100 as month不起作用。只是给了我一些错误。可能是因为我的格式在db2Use中使用MOD(a,b)
而不是a%b
operatorint(year\u month/100)作为年份,year\u month%100作为月份不起作用。只是给了我一些错误。可能是我的格式在db2Use中使用了MOD(a,b)
而不是a%b
操作符