文章
姚 鑫 · 二月 10 阅读大约需 2 分钟

第五十章 SQL函数 DAYOFWEEK

第五十章 SQL函数 DAYOFWEEK

Date函数,它返回日期表达式的整型日期。

参数

  • date-expression - 日期表达式,它是列名、另一个标量函数的结果或日期或时间戳文字。

描述

DAYOFYEAR返回一个介于1到366之间的整数,该整数对应于给定日期表达式的一年中的第几天。DAYOFYAR计算闰年日期。

根据日期整数、$HOROLOG$ZTIMESTAMP值、ODBC格式日期字符串或时间戳计算一年中的日期。

日期表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)

时间戳的时间部分不计算,可以省略。

在计算$HOROLOG值的月份日期时,DAYOFYAR会计算闰年差异,包括世纪日调整:2000年是闰年,1900和2100不是闰年。

DAYOFYEAR可以将1840年12月31日之前的日期表达式值处理为负整数。下面的示例显示了这一点:

SELECT {fn DAYOFYEAR(-306)} AS LastDayFeb, 
       {fn DAYOFYEAR(-305)} AS FirstDayMar  


60  61

最早有效日期表达式为-672045(0001-01)

可以使用DATEPARTDATENAME函数返回当天计数。DATEPARTDATENAME对日期表达式执行值和范围检查。

也可以使用DAYOFYEAR()方法调用从ObjectScript调用此函数:

$SYSTEM.SQL.Functions.DAYOFYEAR(date-expression)

示例

以下示例都返回数字64,因为日期表达式(2016年3月4日)中的日期是一年中的第64天(自动计算闰年日期):

SELECT {fn DAYOFYEAR('2016-03-04 12:45:37')} AS DayCount

64
SELECT {fn DAYOFYEAR(63981)} AS DayCount

64

以下示例均返回当天的计数:

SELECT {fn DAYOFYEAR({fn NOW()})} AS DNumNow,
       {fn DAYOFYEAR(CURRENT_DATE)} AS DNumCurrD,
       {fn DAYOFYEAR(CURRENT_TIMESTAMP)} AS DNumCurrTS,
       {fn DAYOFYEAR($HOROLOG)} AS DNumHorolog,
       {fn DAYOFYEAR($ZTIMESTAMP)} AS DNumZTS

42  42  42  42  42

请注意,$ZTIMESTAMP返回协调世界时(UTC)。其他时间表达式值返回本地时间。这可能会影响DAYOFYAR值。

下面的示例使用子查询返回按每个人的生日日期排序的员工记录:

SELECT Name,DOB
FROM (SELECT Name,DOB,{fn DAYOFYEAR(DOB)} AS BDay FROM Sample.Employee)
ORDER BY BDay

image

0
0 17
讨论 (0)1
登录或注册以继续