Vertica 转换日期格式
Vertica convert date format
在MSSQL中我们可以将日期格式转换成我们想要的格式。
例如:
convert(char(10),column_name , 120)
在 vertica 数据库中我们可以做同样的事情吗?
SELECT CONVERT(CHAR(10),CURRENT_TIMESTAMP,120)
也许是这样的?
select current_timestamp::varchar ;
还是这个?
select left(current_timestamp::varchar, 10) ;
查看标准文档中的 Data Type Coercion section and the Data Type Coercion Chart 可能会有所帮助...
你也可以这样得到:
select getdate()::date;
转换日期类型的方法有很多种,详情请看下面的文档
Vertica Date Transformation
与 MS SQL 不同,Vertica 使用三种经典的 ANSI 数据类型来存储时间元素:
DATE
,精确到天;默认格式通常为 YYYY-MM-DD.
TIME
,通常格式为 HH24:MI:SS,加上可选的最多 6 位的小数秒
TIMESTAMP
和 TIMESTAMPZ
用于整个时间戳; TIMESTAMPZ
包括时区,其他不包括。而TIMESTAMP
的默认格式是YYYY-MM-DDHH24:MI:SS.US,例如:2017-01-2907:45:44.896498.
任何这些输入类型都可以使用来自 Oracle 的相同函数按照您的喜好进行格式化:TO_CHAR.
MSSQL的格式代码120不是那么自明,对应这个格式串:YYYY-MM-DD HH24:MI:SS.
这就是您使用它的方式;我使用 CURRENT_TIME、CURRENT_DATE 和 CURRENT_TIMESTAMP 作为输入,以展示它的作用:
SELECT
TO_CHAR(CURRENT_TIME ,'YYYY-MM-DD HH24:MI:SS') AS from_tm
, TO_CHAR(CURRENT_DATE ,'YYYY-MM-DD HH24:MI:SS') AS from_dt
, TO_CHAR(CURRENT_TIMESTAMP,'YYYY-MM-DD HH24:MI:SS') AS from_ts
;
from_tm | from_dt | from_ts
---------------------+---------------------+---------------------
2017-01-29 07:54:05 | 2017-01-29 00:00:00 | 2017-01-29 07:54:05
这里的好处是这个 TO_CHAR() 函数在许多数据库中很常见,其他 SQL 编码人员将很容易理解这段代码中发生的事情。
玩的开心
理智的马可
在MSSQL中我们可以将日期格式转换成我们想要的格式。
例如:
convert(char(10),column_name , 120)
在 vertica 数据库中我们可以做同样的事情吗?
SELECT CONVERT(CHAR(10),CURRENT_TIMESTAMP,120)
也许是这样的?
select current_timestamp::varchar ;
还是这个?
select left(current_timestamp::varchar, 10) ;
查看标准文档中的 Data Type Coercion section and the Data Type Coercion Chart 可能会有所帮助...
你也可以这样得到:
select getdate()::date;
转换日期类型的方法有很多种,详情请看下面的文档 Vertica Date Transformation
与 MS SQL 不同,Vertica 使用三种经典的 ANSI 数据类型来存储时间元素:
DATE
,精确到天;默认格式通常为 YYYY-MM-DD.TIME
,通常格式为 HH24:MI:SS,加上可选的最多 6 位的小数秒TIMESTAMP
和TIMESTAMPZ
用于整个时间戳;TIMESTAMPZ
包括时区,其他不包括。而TIMESTAMP
的默认格式是YYYY-MM-DDHH24:MI:SS.US,例如:2017-01-2907:45:44.896498.
任何这些输入类型都可以使用来自 Oracle 的相同函数按照您的喜好进行格式化:TO_CHAR.
MSSQL的格式代码120不是那么自明,对应这个格式串:YYYY-MM-DD HH24:MI:SS.
这就是您使用它的方式;我使用 CURRENT_TIME、CURRENT_DATE 和 CURRENT_TIMESTAMP 作为输入,以展示它的作用:
SELECT
TO_CHAR(CURRENT_TIME ,'YYYY-MM-DD HH24:MI:SS') AS from_tm
, TO_CHAR(CURRENT_DATE ,'YYYY-MM-DD HH24:MI:SS') AS from_dt
, TO_CHAR(CURRENT_TIMESTAMP,'YYYY-MM-DD HH24:MI:SS') AS from_ts
;
from_tm | from_dt | from_ts
---------------------+---------------------+---------------------
2017-01-29 07:54:05 | 2017-01-29 00:00:00 | 2017-01-29 07:54:05
这里的好处是这个 TO_CHAR() 函数在许多数据库中很常见,其他 SQL 编码人员将很容易理解这段代码中发生的事情。
玩的开心
理智的马可