文章目录
第五十章 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)
。
可以使用DATEPART
或DATENAME
函数返回当天计数。DATEPART
和DATENAME
对日期表达式执行值和范围检查。
也可以使用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