Netezza 获得每月第一天约会的最佳方式是啥?
Posted
技术标签:
【中文标题】Netezza 获得每月第一天约会的最佳方式是啥?【英文标题】:Netezza What is the best way to get the first day of the month for a date?Netezza 获得每月第一天约会的最佳方式是什么? 【发布时间】:2017-08-04 16:57:01 【问题描述】:Select to_date(to_char(date_part('year',current_date),'0000') || trim(to_char(date_part('month',current_date),'00')) || '01','YYYYMMDD')
到目前为止,这是我能想到的最好的。
我也找不到包含所有功能的 Netezza SQL 的综合语言参考,因此请在您的答案中提供来源。
【问题讨论】:
【参考方案1】:使用 date_trunc('month', current_ date),即documented here。
【讨论】:
【参考方案2】:从日期开始,我今天需要的是使用当前日期/月份。然后找到当月的最后一天。这是第一天作为系统输出的外壳:
-
从当前日期开始
使用 add_months (-1) 减去一个月;
查找上个月的最后一天;
增加 1 天。
然后我决定在 2 月(闰年和正常年)进行测试,从第一个开始找到第一个,然后加入下个月的第一个。还检查了一个月前从 31 日和 30 日结束的一个月。我认为这应该是灵活的。
select current_date,
last_day(add_months(current_date,-1))+1 as firstdt_currmos,
last_day(current_date) as lastdt_currmos
;
select last_day(add_months('02-29-2016',-1))+1 as firstdt_febleap,
last_day(add_months('02-28-2019',-1))+1 as firstdt_febnorm,
last_day(add_months('07-01-2019',-1))+1 as firstdt_first,
last_day(add_months(current_date,-1))+1 as firstdt_currmos,
last_day(current_date)+1 as firstdt_nextmos,
last_day(add_months('07-31-2019',-1))+1 as firstdt_mos31st,
date(add_months('07-31-2019',-1)) as mosago_31st,
date(add_months('06-30-2019',-1)) as mosago_30th
;
【讨论】:
以上是关于Netezza 获得每月第一天约会的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章