DATENAME
功能描述
Vastbase在SQL Server兼容模式下支持DATENAME函数,用于返回表示指定 date 的指定 datepart 的字符串,返回值为varchar类型。
注意事项
- 该功能仅在数据库兼容模式为SQL Server时能够使用(即创建DB时DBCOMPATIBILITY='MSSQL'),在其他数据库兼容模式下不能使用该特性。
- 该函数支持的Vastbase版本:
- V2.2 Build 10 (Patch No.11)及以后补丁版本。
- V2.2 Build 12及以后版本。
语法格式
DATENAME(datepart,date)
参数说明
datepart
datepart将返回表示 date 参数的特定部分的整数,支持的datepart参数如下所示:
datepart 缩写形式 备注 year yy,yyyy 年 quarter qq,q 季度 month mm,m 月 dayofyear dy,y 一年中的第几天 day dd,d 日 week wk,ww 一年中的第几周 weekday dw,w 星期几 hour hh 小时 minute mi,n 分钟 second ss,s 秒 millisecond ms 毫秒 microsecond mcs 微秒 nanosecond ns 毫微秒 tzoffset tz 时区偏移量 iso_week isowk,isoww ISO标准周数 date
要返回datepart值的日期、时间或时间戳表达式。日期表达式必须包含datepart类型的值。
可解析为下列值之一的表达式:
- time
- timetz
- date
- timestamp
- timestamptz
示例
前置步骤:创建兼容模式为SQL Server的库db_sqlserver,并进入。
CREATE DATABASE db_sqlserver DBCOMPATIBILITY='MSSQL';
\c db_sqlserver
示例1:直接调用DATENAME函数。
SELECT datename(month,getdate());
返回结果如下:
datename
----------
February
(1 row)
示例2:在sql语句中调用DATENAME函数。
1、创建测试表。
create table test(id int,col1 text,col2 varchar,col3 char(8),col4 varchar2(10));
2、在INSERT语句中使用。
insert into test values(1,datename(yyyy,getdate()),
datename(month,'2022-12-11'),datename(day,'1999-09-18'),datename(week,'2099-12-01'));
insert into test(id) values(2);
3、在UPDATE语句中使用。
update test set col3=datename(second,'1999-09-18 20:59:59') where id=2;
4、查询结果。
SELECT * FROM test;
结果返回如下:
id | col1 | col2 | col3 | col4
----+------+----------+----------+------
1 | 2023 | December | 18 | 49
2 | | | 59 |
(2 rows)