VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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)