GreenPlum常用函数(日期)

最近使用GP,网上查找资料不太方便,记录工作中遇到的一些常见函数供参考


日期

1、获取当前日期

now(),current_day(),

2、字符串转日期

timestamp('2011-07-20')

timestamp('2011-07-20 00:00:00' )

to_date('20110720','yyyymmdd')

3、数字转日期

to_timestamp(1342222222)

这个数字是一个数字,是目标日期减去1970-01-01 08:00:00的时间差秒数

4、日期转字符串

to_char(now(),'yyyymmdd')

to_char(now(),'yyyy-mm-dd')

to_char(now(),'hh:mm:ss')

5、日期相加

now() + interval '1 day' + interval '3 month + interval '2 hour'

6、获取日期的年、月、周

to_char(now(),'yyyy')

to_char(now(),'mm')

to_char(now(),'ww')  算一年的第几周,譬如2011-01-01至2011-01-07是第一周,2011-01-08是第二周

extract(week from now()) 稍微注意点,如果今年第一天是星期四或以后的,则今年第一个周六(包括)之前的数据都算去年的最后一周,如果第一天是星期四之前,则前几天算第一周,可以验证 '2011-01-01' 和 '2008-01-01'两个数据

 

详细信息可查看文档:http://www.pgsqldb.org/pgsqldoc-cvs/functions-datetime.html

### Greenplum SQL 中获取当前日期函数Greenplum SQL 中,可以通过多种方式来获取当前日期。以下是几种常用方法及其具体实现: #### 方法一:`NOW()` 函数 `NOW()` 是一种常用的内置函数,用于返回当前的时间戳(包括日期和时间)。如果只需要提取日期部分,则可以结合 `::date` 类型转换器或者字符串截取函数完成。 ```sql SELECT NOW()::DATE; -- 返回当前日期 ``` 这种方法利用了 PostgreSQL 的继承特性[^2],因为 Greenplum 基于 PostgreSQL 开发,因此支持类似的语法。 --- #### 方法二:`CURRENT_DATE` `CURRENT_DATE` 是专门用来获取当前日期的一个标准 SQL 函数,它会自动忽略时间部分并仅返回日期。 ```sql SELECT CURRENT_DATE; ``` 此函数简单直观,适用于大多数场景下只需关注日期的情况[^1]。 --- #### 方法三:`EXTRACT` 或 `TO_CHAR` 结合使用 当需要更灵活地控制日期格式时,可以借助 `EXTRACT` 和 `TO_CHAR` 这两个强大的工具。例如: - 提取年份: ```sql SELECT EXTRACT(YEAR FROM CURRENT_DATE); -- 使用 EXTRACT ``` - 格式化为特定样式: ```sql SELECT TO_CHAR(CURRENT_DATE, 'YYYY-MM-DD'); -- 使用 TO_CHAR 定义输出格式 ``` 这些功能不仅限于获取完整的日期值,还可以进一步分解成具体的组成部分(如月份、星期等),满足复杂需求。 --- #### 示例代码综合展示 下面提供一段包含上述三种方法的实际应用例子: ```sql -- 当前日期的不同表示形式 WITH date_example AS ( SELECT NOW()::DATE AS current_date_now, CURRENT_DATE AS current_date_func, TO_CHAR(NOW(), 'YYYY-MM-DD') AS formatted_current_date ) SELECT * FROM date_example; ``` 运行以上脚本后,将会得到如下列名及对应的结果字段: | **current_date_now** | **current_date_func** | **formatted_current_date** | |----------------------|-----------------------|----------------------------| | YYYY-MM-DD | YYYY-MM-DD | YYYY-MM-DD | 每种表达均指向同一时刻服务器上的实际日期信息。 --- ### 注意事项 尽管 Greenplum 支持丰富的日期操作手段,但在跨平台开发过程中需要注意不同数据库间的行为差异。比如 MySQL 默认周数计算起点可能不同于 Greenplum 设置,这要求开发者额外调整逻辑以达成一致性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值