第四十五章 SQL函数 DATEPART

文章目录

  • 第四十五章 SQL函数 DATEPART
  • 大纲
  • 参数
  • 描述
  • Datepart 参数
  • 日期输入格式
  • 无效的参数错误代码
  • 范围和值检查
  • 示例

第四十五章 SQL函数 DATEPART

日期/时间函数,返回表示日期/时间表达式指定部分的值的整数。

大纲

DATEPART(datepart,date-expression)

参数

  • datepart - 要返回的日期/时间信息的类型。日期或时间部分的名称(或缩写)。这个名称可以用大写或小写来指定,有或没有引号。datepart可以指定为文字或主机变量。
  • date-expression - 从中返回datepart值的日期、时间或时间戳表达式。日期表达式必须包含datepart类型的值。

描述

DATEPORT函数以整数数据类型返回关于指定日期/时间表达式的DATEPORT信息。唯一的例外是sqltimestamp (sts),它以数据类型%Library.Timestamp返回。要以字符串形式返回日期部分信息,请使用DATENAME

DATEPART只返回日期表达式中一个元素的值;要返回包含多个日期部分的字符串,请使用TO_DATE

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

$SYSTEM.SQL.Functions.DATEPART(datepart,date-expression)

提供DATEPART是为了与Sybase和Microsoft SQL Server兼容。

Datepart 参数

日期部分参数可以是下列日期/时间组件之一,可以是全名(日期部分列)或其缩写(缩写列)。这些datepart组件名称和缩写不区分大小写。

Date PartAbbreviationsReturn Values
yearyyyy, yy0001-9999
quarterqq, q1-4
monthmm, m1-12
weekwk, ww1-53
weekdaydw1-7 (Sunday,…,Saturday)
dayofyeardy, y1-366
daydd, d1-31
hourhh0-23
minutemi, n0-59
secondss, s0-59
millisecondms0-999 (with precision of 3)
microsecondmcs0–999999 (with precision of 6)
nanosecondns0–999999999 (with precision of 9)
sqltimestampstsSQL_TIMESTAMP: yyyy-mm-dd hh:mm:ss

上表显示了不同日期部分的默认返回值。可以使用带有各种时间和日期选项的“设置选项”命令来修改其中几个日期部分的返回值。

week:可以配置为使用默认算法或ISO 8601标准算法来确定给定日期的一年中的星期。

weekday:对weekday的默认设置是将星期日指定为一周的第一天(weekday=1)。但是,可以将一周的第一天配置为另一个值,或者可以应用ISO 8601标准,将星期一指定为一周的第一天。请注意,ObjectScript $ZDATE$ZDATETIME函数计算的周天数是从0到6(而不是从1到7)。

second:如果日期表达式包含小数秒,将秒作为十进制数返回,整数秒作为整数部分,小数秒作为小数部分。精度不会被截断。

millisecond:返回三个小数位数的精度,去掉尾随零。如果日期表达式的精度超过三位数会将其截断为三位数。

sqltimestamp: 将输入数据转换为时间戳格式,并在必要时为时间元素提供零值。sqltimestamp(缩写为sts) datepart值仅用于datepart。不要试图在其他上下文中使用此值。

datepart可以指定为带引号的字符串,不带引号,或者在带引号的字符串周围加上括号。无论如何指定,都不会对datepart执行文字替换;对日期表达式执行文字替换。所有datepart值都返回一个数据类型INTEGER值,但sqltimestamp(或sts)除外,它以数据类型timestamp的字符串形式返回其值。

日期输入格式

日期表达式参数可以采用以下任何格式:

  • %Date logical value (+$H)

  • %PosixTime (%Library.PosixTime) logical value (an encoded 64-bit signed integer)

  • %TimeStamp (%Library.TimeStamp) logical value (YYYY-MM-DD HH:MM:SS.FFF), also known as ODBC format.

  • IRIS %String (or compatible) value

%String(或兼容)值可以是以下任何格式:

  • 99999,99999 ($H format)

  • Sybase/SQL-Server-date Sybase/SQL-Server-time

  • Sybase/SQL-Server-time Sybase/SQL-Server-date

  • Sybase/SQL-Server-date (default time is 00:00:00)

  • Sybase/SQL-Server-time (default date is 01/01/1900)

Sybase/SQL-Server-date是这五种格式之一:

mmdelimiterdddelimiter[yy]yy dd Mmm[mm][,][yy]yy dd [yy]yy Mmm[mm] yyyy Mmm[mm] dd yyyy [dd] Mmm[mm]

其中分隔符是斜杠(/)、连字符(-)或句点(.)).

Sybase/SQL服务器时间代表这三种格式之一:

HH:MM[:SS:SSS][{AM|PM}] HH:MM[:SS.S] HH['']{AM|PM}

如果日期表达式指定了时间格式,但没有指定日期格式,则DATENAME默认为日期1900–01–01,该日期的工作日值为2(星期一)。

对于sqltimestamp,时间以24小时制返回。分数秒被截断。

无效的参数错误代码

如果指定无效的datepart选项,DATEPART将生成一个SQLCODE -8错误代码,并且以下%msg: 'badopt' is not a recognized DATEPART option.

如果指定了无效的日期表达式值(例如,字母文本字符串),DATEPART将生成SQLCODE -400错误代码和以下 %msg: Invalid input to DATEPART() function: DATEPART('year','badval')。如果指定的日期表达式未通过验证(如下所述),datepart将生成一个SQLCODE -400错误代码,并显示以下%msg: Unexpected error occurred: <ILLEGAL VALUE>datepart.

范围和值检查

DATEPART对日期表达式值执行以下检查。如果值未通过检查,则返回空字符串。

  • 有效的日期表达式可以由日期字符串(yyyy-mm-dd)、时间字符串(hh:mm:ss)或日期和时间字符串(yyy-mm-dd hh:mm:ss)组成。如果同时指定了日期和时间,则两者都必须有效。例如,如果未指定时间字符串,则可以返回年份值,但是如果指定了无效的时间字符串,则不能返回年份值。
  • 日期字符串必须完整且格式正确,每个元素都有适当数量的元素和数字,以及适当的分隔符。例如,如果省略了“日”值,则不能返回“年”值。年份必须指定为四位数。
  • 时间字符串必须用适当的分隔符正确格式化。因为时间值可以为零,所以可以省略一个或多个时间元素(保留或省略分隔符),这些元素将以零值返回。因此,' hh:mm:ss '' hh:mm '' hh:mm '' hh:ss '' hh:',和':::'都是有效的。要省略Hour元素,日期表达式不能包含字符串的日期部分,并且必须至少保留一个分隔符(:)。
  • 日期和时间值必须在有效范围内。年份:00019999。月份:112。天数:131天。小时:023。分钟:059。秒:059
  • 一个月中的天数必须与月和年相匹配。例如,日期“02–29”仅在指定年份为闰年时有效。
  • 大多数小于10的日期和时间值可能包含或省略前导零。但是,如果小时值是日期时间字符串的一部分,则小于10的小时值必须包含前导零。不允许其他非规范整数值。因此,“07”“7”的“日”值有效,但“007”“7.0”“7a”无效。
  • 如果日期表达式指定了时间格式,但没有指定日期格式,则DATEPART不会对时间分量值执行范围验证。

示例

在下面的示例中,每个DATEPART将日期时间字符串的年份部分(在本例中为2018年)作为整数返回。请注意,日期表达式可以有多种格式,datepart可以指定为datepart名称或datepart缩写,带引号或不带引号:

SELECT DATEPART('yy','2018-02-22 12:00:00') AS YearDTS,DATEPART('year','2018-02-22') AS YearDS,DATEPART(YYYY,'02/22/2018') AS YearD,DATEPART(YEAR,64701) AS YearHD,DATEPART('Year','64701,23456') AS YearHDT2018	2018	2018	2018	2018

以下示例基于$HOROLOG值返回当前年份和季度:

SELECT DATEPART('yyyy',$HOROLOG) AS Year,DATEPART('q',$HOROLOG) AS Quarter2022	1

下面的嵌入式SQL示例使用主机变量来提供DATEPART参数值:

  SET x="year"SET datein="2018-02-22"&sql(SELECT DATEPART(:x,:datein)INTO :partout)WRITE "the ",x," is ",partout

下面的示例返回Sample.Person表的出生日期(按星期几排序):

SELECT Name,DOB,DATEPART('weekday',DOB) AS bday
FROM Sample.Person
ORDER BY bday,DOB

在这里插入图片描述

在以下示例中,每个DATEPART返回20作为日期表达式字符串的分钟部分:

SELECT DATEPART('mi','2018-2-20 12:20:07') AS Minutes,DATEPART('n','2018-02-20 10:20:') AS Minutes,DATEPART(MINUTE,'2018-02-20 10:20') AS Minutes20	20	20

在下面的示例中,每个DATEPART返回0作为日期表达式字符串的秒部分:

SELECT DATEPART('ss','2018-02-20 03:20:') AS Seconds,DATEPART('S','2018-02-20 03:20') AS Seconds,DATEPART('Second','2018-02-20') AS Seconds0	0	0

以下示例以TIMESTAMP数据类型返回完整的SQL TIMESTAMPDATEPART填充缺失的时间信息以返回时间戳‘2018-02-25 00:00:00’

SELECT DATEPART(sqltimestamp,'2/25/2018') AS DTStamp2018/2/25 0:00:00

以下示例以$HOROLOG格式提供日期和时间,并返回时间戳‘2018-02-22 06:30:56’

SELECT DATEPART(sqltimestamp,'64701,23456') AS DTStamp2018/2/22 6:30:56

下面的示例使用带有DATEPART的子查询来返回生日为闰年日(2月29日)的那些人:

SELECT Name,DOB
FROM (SELECT Name,DOB,DATEPART('dd',DOB) AS DayNum,DATEPART('mm',DOB) AS Month FROM Sample.Person)
WHERE Month=2 AND DayNum=29 

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/142735.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

继瑞吉外卖后的又一个项目——SpringBoot+Vue的前后端博客系统

文章目录 博客系统项目介绍前言项目演示前台演示后台演示 组织结构后端组织结构前端组织结构 技术选型前端技术后端技术架构图系统架构图业务架构图 模块介绍前端模块后端模块 环境搭建开发工具开发环境项目运行 未完待续结语 博客系统项目介绍 前言 本项目已开源在Gitee 后端…

使用PS制作毛玻璃效果

无论是在前端界面设计上还是海报制作上&#xff0c;模糊都是一种非常高级、流行的处理手法。 在2013年6月7日&#xff0c;IOS7在开发者大会上发布&#xff0c;IOS7一改以往的拟物化设计&#xff0c;以最简单的点线面引领了设计行业的风潮 IOS7上的毛玻璃效果 毛玻璃设计风格的…

html做出文字凹凸效果,css3怎么实现字体凹陷凸出效果?(附代码)

本篇文章主要给大家介绍用css3实现字体凹陷或凸出效果的实现方法。 我们在设计网页时&#xff0c;常常会需要考虑到用户体验&#xff0c;那么足够美观的网页才能吸引住用户。为了让网页内容更加丰富好看&#xff0c;我们可能会使用ps做出很多特效&#xff0c;其实除了ps&#x…

css3实现div的凸起或凹陷效果

简单的小知识 div的凸起和凹陷效果之前一直觉得是背景渐变等方式实现&#xff0c;最近突然发现只需要对div的边框进行区别设置即可&#xff0c;感觉非常神奇&#xff0c;于是分享一下。 请仔细观察对比示例中四周边框的设置&#xff0c;边框宽度是不一样的。效果在最后 示例…

PS实例一 制作凹陷的按钮(斜面和浮雕的使用)

首先看下效果 主要只是斜面和浮雕效果 1、 建两个图层 2、 双击图层2 选中斜面和浮雕效果 3、选择强光 4、ctrl 鼠标点击图层1中的内容&#xff0c;编辑->描边 5 复制图层1和图层2 按住ctrl选择图层1和图层2 点击链接图层 6 调整大小 75% 7 双击图层2副本中的斜面和浮雕调…

css实现按钮凸起和凹陷效果

今天用CSS实现一下按钮按下凹陷和弹起凸起的效果。 先来看看效果吧&#xff1a; html: <div class"btn-list"><div class"btn active"><span class"btn-text">按钮1</span></div><div class"btn"…

Ps 毛玻璃效果

哈喽&#xff0c;各位小伙伴&#xff01;今天我们来学习一下如何制作毛玻璃效果&#xff1f; 复制图层 导入一张图片&#xff0c;Ctrlj复制一层&#xff0c;右键—智能对象&#xff08;目的&#xff1a;方便后期更换图片&#xff09; 画矩形 画矩形(不要描边)&#xff0c;…

ps中字凹进去效果

1、写出字 2、把带字的图层复制一份&#xff08;或者两份&#xff09;&#xff0c;把在下面图层的字颜色改为“白色” 3、白色字体的图层&#xff0c;向下 向右移动一次&#xff0c;把图层模式改为“柔光”&#xff0c;就出来这样的效果

PS快速制作凹陷直线

先来看看效果图&#xff1a;当你要在一个颜色上做凹陷一条直线&#xff0c;第一步&#xff1a;新建一个图层&#xff0c;填充背景色&#xff0c;例如。第二步&#xff1a;使用 单行选框工具 划出一条直线&#xff0c;例如。第三步&#xff1a;新建一个图层 然后为这一个像素的填…

Photoshop学习(十三):利用图层制作凹陷效果

文章目录 工具目的步骤资料 工具 *【移动工具】 目的 通过将一个图层剪切的方法拆分为两个图层&#xff0c;并为两个图层设置不同的样式&#xff0c;使图像的一部分在视觉上产生凹陷效果。 步骤 1.打开素材图片 &#xff1a; 2.使用【移动工具】将 兔子. jpg 图像移动到…

PS 滤镜——(扭曲)逆球面化 (凹陷效果)

%%% Inverse_Spherize %%% 逆球面化clc; clear all; close all;addpath(E:\PhotoShop Algortihm\Image Processing\PS Algorithm);Iimread(4.jpg); Imagedouble(I);[row, col,layer]size(Image); Rfloor(min(row, col)/2); Kpi/2; Image_newImage; alpha1; for i1:rowfor j1:co…

继电器相关知识

这个就是继电器&#xff0c;左边有三个接口&#xff0c;VCC(3.3v),GND,IO右面有COM,NO,NC。左侧的IO口如果接受到低电平&#xff0c;继电器内部线圈就会工作&#xff0c;然后供电&#xff0c;开关由NC端闭合到NO端&#xff0c;NO开始闭合&#xff0c;例如&#xff1a;可以将喇叭…

(2)lordPE脱壳

1.寻找OEP 1.1第一种情况 1.修改OD选项&#xff0c;调试设置"事件"为系统断点&#xff0c;直接打开"查看"->"内存",设置00400000下F2断点&#xff0c;单步F8找到0040****开头的OEP例如&#xff1a;00401528 1.2第二种情况 进入od后如果直…

电子科技大学编译原理复习笔记(二):数据类型

目录 前言 重点一览 引言 内部类型 内部类型的特点 内部类型的优越性 用户定义类型 ⭐超重点&#xff1a;六种数据类型聚合方式 ⭐抽象数据类型&#xff08;重点、考点&#xff09; 类型操作 类型检查 类型转换 类型等价 实现模型 本章小结 前言 本复习笔记基于…

神经网络视觉AI“后时代”自瞄实现与对抗

通俗一点来说&#xff0c;自瞄是在FPS射击游戏中最为常见的作弊手段之一&#xff0c;当下最火爆的CSGO也深受其扰&#xff0c;在此我说些我自己的看法&#xff0c;欢迎大家在下方留言讨论&#xff1b; &#xff08;1&#xff09;软件层面 在神经网络方面的视觉AI应用流行之前&…

(三) PID控制中的噪声过滤

在前面的章节里&#xff0c;我们谈到了积分环节由于执行器的物理限制导致的积分项Wind-up&#xff0c;通过设置饱和限幅器&#xff0c;选择性关闭积分环节来完成Wind-up问题。 今天我们要解决的问题就是微分环节可能存在的问题。通过传感器我们可以观测出一个被控量的大小&…

召唤神龙无敌版

简介&#xff1a; 召唤神龙无敌版 网盘下载地址&#xff1a; http://pan.zijiepan1.xyz/qfXDRWOOSLF0 图片&#xff1a;

苹果官网查询产品的激活日期教程

PS&#xff1a;本方法支持 iPhone/iPad/iPod/Apple Watch/Mac 等所有苹果产品。 如何通过苹果设备序列号快速查询到设备的激活日期呢&#xff1f;分为以下两种情况&#xff1a; 情况一&#xff1a;设备在保修期内 第一步&#xff1a;进入下方网站&#xff0c;然后输入需要查…

召唤神龙源码(可部署上线)

召唤神龙游戏源码 最近比较火的召唤神龙&#xff0c;给大家分享一下 游戏体验链接&#xff1a;https://www.iculture.cc/demo/dragon/ 部分前端代码&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>召唤神…

召唤神龙无敌版,轻松召唤神龙~

还在被鲨鱼围着追吗&#xff1f;快来试试无敌版轻松通关&#xff01; 最新召唤神龙无敌版 地址: http://minigame.suyiboke.com/zhaohuanshenlongwdb/index.html 备用地址(推荐):https://suyiboke.com/zhaohuanshenlongwdb/index.html 变态版(见啥吃啥):http://minigame.suy…