Date 为给定日期查找MonthEnd日期
在拉丁语中,是否有一个内置函数来查找给定日期的月末日期?例如,如果给定日期为“2015-03-15”,则返回的月末日期应为“2015-03-31”,如果给定日期为“2015-04-15”,则月末日期应为“2015-04-30”。执行此类操作的一般方法是,如果您没有发现所讨论的语言已经具有一组内置的“执行此类操作”的函数,则。。。在这种情况下:Date 为给定日期查找MonthEnd日期,date,apache-pig,Date,Apache Pig,在拉丁语中,是否有一个内置函数来查找给定日期的月末日期?例如,如果给定日期为“2015-03-15”,则返回的月末日期应为“2015-03-31”,如果给定日期为“2015-04-15”,则月末日期应为“2015-04-30”。执行此类操作的一般方法是,如果您没有发现所讨论的语言已经具有一组内置的“执行此类操作”的函数,则。。。在这种情况下: 确定当月的第一天。(“月/01/Year”这是您“手工”完成的唯一步骤。) 加上“一个月”。(在您的语言中应该有某种“DateAdd()”函数…) 最后
- 确定当月的第一天。(“月/01/Year”这是您“手工”完成的唯一步骤。)
- 加上“一个月”。(在您的语言中应该有某种“DateAdd()”函数…)
- 最后,使用相同的函数“减去一天”
但首先,要仔细看看。“会计师总是想做这类事情。”通常有一套相当好的,有时非常好的函数来进行日期操作。(如果它们不是语言内置的,通常会有一个别人已经编写和完善的“好东西”库。)做这些事情的一般方法,如果你没有发现所讨论的语言已经有一组内置的函数来“做这些事”,就是。。。在这种情况下:
- 确定当月的第一天。(“月/01/Year”这是您“手工”完成的唯一步骤。)
- 加上“一个月”。(在您的语言中应该有某种“DateAdd()”函数…)
- 最后,使用相同的函数“减去一天”
REGISTER /usr/lib/pig/piggybank.jar;
DEFINE ISOToMonth org.apache.pig.piggybank.evaluation.datetime.truncate.ISOToMonth();
%declare END_OF_MONTH SubtractDuration(AddDuration(ToDate(ISOToMonth('2015-03-15')),'P1M'),'P1D')
A = LOAD 'DummyFileWithOneRow.txt' USING PigStorage(',') AS (f1:chararray, f2:chararray);
result = FOREACH A GENERATE
f1 AS f1,
$END_OF_MONTH AS end_of_month;
DUMP result
这次运行的结果是:
(12015-03-31T00:00:00.000Z)
- 现在可以将此结果转换为所需格式
- 您可以将此计算作为foreach对加载值的一部分
REGISTER /usr/lib/pig/piggybank.jar;
DEFINE ISOToMonth org.apache.pig.piggybank.evaluation.datetime.truncate.ISOToMonth();
%declare END_OF_MONTH SubtractDuration(AddDuration(ToDate(ISOToMonth('2015-03-15')),'P1M'),'P1D')
A = LOAD 'DummyFileWithOneRow.txt' USING PigStorage(',') AS (f1:chararray, f2:chararray);
result = FOREACH A GENERATE
f1 AS f1,
$END_OF_MONTH AS end_of_month;
DUMP result
这次运行的结果是:
(12015-03-31T00:00:00.000Z)
- 现在可以将此结果转换为所需格式
- 您可以将此计算作为foreach对加载值的一部分