类似: "set obj = ##class(myClass).%OpenId(id)" 把一个id 赋予对象的实例,有没有办法可以通过提供类名和id 作为参数来实现功能/类方法来返回同样的结果,例如 用ObjectScript 中的getObjectInstanceByNameId(className As %String, id As %Integer)?谢谢!
第五十二章 SQL函数 DEGREES
将弧度转换为角度的数值函数。
大纲
DEGREES(numeric-expression)
{fn DEGREES(numeric-expression)}
参数
numeric-expression- 以弧度表示的角度的量度。解析为数值的表达式。
度返回NUMERIC或DOUBLE数据类型。如果NUMERIC-EXPRESSION的数据类型为DOUBLE,则度返回DOUBLE;否则返回NUMERIC。
度数可以指定为标准标量函数,也可以指定为使用大括号语法的ODBC标量函数。
描述
DEGREES以弧度为单位进行角度测量,并以度为单位返回相应的角度测量值。如果传递空值,度将返回空。
返回值的默认精度为36,默认小数位数为18。
可以使用弧度函数将度数转换为弧度。
示例
下面的嵌入式SQL示例返回与弧度值0到6对应的等价度:
ClassMethod Degrees()
{
s a = 0
while a < 7 {
&sql(SELECT DEGREES(:a) INTO :b)
if SQLCODE '= 0 {
w !,"Error code ",SQLCODE
q
} else {
w !第五十一章 SQL函数 DECODE
计算给定表达式并返回指定值的函数。
大纲
DECODE(expr {,search,result}[,default])
参数
expr- 要解码的表达式。search- 要与Expr进行比较的值。result-Expr匹配搜索时返回的值。default- 可选-如果expr与任何搜索都不匹配,则返回默认值。
描述
可以指定多个搜索和结果对,以逗号分隔。您可以指定一个默认值。DECODE表达式(包括EXPR、SEARCH、RESULT和DEFAULT)中的最大参数数约为100。搜索、结果和默认值可以从表达式派生。
为了计算DECODE表达式,会逐个将expr与每个搜索值进行比较:
- 如果
expr等于search,则返回相应的结果。 - 如果
expr不等于search,则返回默认值,如果省略默认值,则返回NULL。
仅在将search与Expr进行比较之前计算每个search,而不是在将所有search与Expr进行比较之前评估所有search。因此,如果上一次搜索等于EXPR,不会对搜索求值。
在DECODE表达式中,将两个NULL视为等效。如果expr为NULL,则将返回同样为NULL的第一次搜索结果。
请注意,为了与Oracle兼容,支持解码。
返回值的数据类型
DECODE返回第一个结果参数的数据类型。
Hello 家人们,
InterSystems 学习网站有许多非常棒的课程。 因此,如果您想了解 InterSystems 并开始使用 InterSystems,希望这些资源可以帮到你:
第五十章 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)。
第四十九章 SQL函数 DAYOFWEEK
Date函数,它返回日期表达式的整型星期几。
大纲
{fn DAYOFWEEK(date-expression)}
参数
date-expression- 有效的ODBC格式日期或$HOROLOG格式日期,带或不带时间组件。作为列名、另一个标量函数的结果或日期或时间戳文字的表达式。
描述
DAYOFWEEK接受日期表达式,并返回与该日期的星期几对应的整数。一周的天数从一周的第一天开始计算;的默认设置是星期天是一周的第一天。因此,默认情况下,返回值表示这些天:
- 1 — Sunday
- 2 — Monday
- 3 — Tuesday
- 4 — Wednesday
- 5 — Thursday
- 6 — Friday
- 7 — Saturday
请注意,ObjectScript $ZDATE和$ZDATETIME函数计算一周中的天数从0到6(而不是1到7)。
日期表达式可以是日期整数、$HOROLOG或$ZTIMESTAMP值、ODBC格式的日期字符串或时间戳。
日期表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)。
时间戳的时间部分不被评估,可以省略。
可以使用DATEPART或TO_DATE函数返回星期几的信息。
第四十八章 SQL函数 DAYOFMONTH
返回日期表达式的月份日期的日期函数。
大纲
{fn DAYOFMONTH(date-expression)}
参数
date-expression- 要从中返回月值日期的日期或时间戳表达式。作为列名、另一个标量函数的结果或日期或时间戳文字的表达式。
描述
DAYOFMONTH以1到31之间的整数形式返回每月的第几天。日期表达式可以是日期整数、$HOROLOG或$ZTIMESTAMP值、ODBC格式的日期字符串或时间戳。
日期表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)。
TIMESTAMP或$HOROLOG字符串的时间部分不计算,可以省略。
DAYOFMONTH和DAY函数在功能上是相同的。
也可以使用DAYOFMONTH()方法调用从ObjectScript调用此函数:
DHC-APP> w $SYSTEM.SQL.DAYOFMONTH("2018-02-25")
25
Timestamp date-expression
时间戳字符串的日(Dd)部分应该是介于1到31之间的整数。但是,不会对用户提供的值进行范围检查。按照指定的方式返回大于31的数字和分数。由于(-)用作分隔符,因此不支持负数。
说明
欢迎来到InterSystems广播站--数据点!在这一集里,我们和在线培训团队负责人Jenny Ames聊了聊InterSystems IRIS--稳定、灵活、可扩展、可互操作的数据平台,它为世界上许多最关键的核心应用提供支持。从它的多模型性质到它的集成引擎,再到它的医疗保健功能,在一次谈话中,有很多东西需要解读。
本期节目回放:https://datapoints.castos.com/episodes/1-what-is-intersystems-iris-jenn…
关于InterSystems广播站的更多信息,请访问https://datapoints.intersystems.com。
今天就试用InterSystems IRIS,请到https://www.intersystems.com/try,启动你的实例!
更多资料欢迎访问:https://gettingstarted.intersystems.com。
以下是本期对话中文全文。
德里克-罗宾逊 00:01 欢迎来到InterSystems 在线培训的播客。请确保在你最喜欢的播客应用程序上订阅播客,如Spotify、苹果播客、谷歌播放或Stitcher。你可以通过搜索 "数据点 "并点击订阅按钮来做到这一点。
InterSystems 数据平台团队非常高兴地宣布,InterSystems IRIS数据平台、InterSystems IRIS for Health和HealthShare Health Connect的2021.2版本现已向我们的客户和合作伙伴全面开放(GA)。
第四十七章 SQL函数 DAYNAME
Date函数,它返回日期表达式的星期几的名称。
大纲
{fn DAYNAME(date-expression)}
参数
date-expression- 计算结果为日期整数、ODBC日期或时间戳的表达式。该表达式可以是列名、另一个标量函数的结果或日期或时间戳文字。
描述
DAYNAME返回与指定日期对应的日期的名称。返回值为字符串,最大长度为15。默认返回的日期名称为:Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday。
要更改这些默认日期名称值,请使用带有WEEKDAY_NAME选项的SET OPTION命令。
日期名称是针对日期整数、$HOROLOG或$ZTIMESTAMP值、ODBC格式日期字符串或时间戳计算的。
日期表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)。
时间戳的时间部分不计算,可以省略。
DAYNAME检查提供的日期是否为有效日期。年份必须介于0001和9999之间(包括0001和9999)、月01到12和适合该月的日期(例如,02/29仅在闰年有效)。如果日期无效,DAYNAME将发出SQLCODE-400错误(发生致命错误)。
第四十六章 SQL函数 DAY
返回日期表达式的月份日期的日期函数。
大纲
DAY(date-expression)
{fn DAY(date-expression)}
参数
date-expression- 作为列名、另一个标量函数的结果或日期或时间戳文字的表达式。
描述
注意:DAY函数是DAYOFMONTH函数的别名。提供DAY是为了与TSQL兼容。
SELECT day("2022-02-28") AS day
28
SELECT day(+$h) AS day
5
本文是上一篇关于如何从流行数据库(如 PostgreSQL 和 MySQL)迁移到 IRIS 的后续文章。
我们将使用与从 PostgreSQL 迁移相同的过程。 但是,您会发现它更容易,因为 MySQL 中的数据类型与 IRIS 非常相似。 这就是为什么我们不需要在列中创建转换规则。
获取示例数据到迁移过程
在 GitHub 中,可以下载 docker-compose 项目来构建和运行 2 个数据库:
- 源数据库:带有示例数据库的 MySQL 数据库 Docker 实例。
- 目标数据库:InterSystems IRIS 数据平台 Docker 实例,具有用于接收源数据库的现成模式。
要获取示例并运行它,请执行以下步骤:
转到 git 存储库 https://github.com/yurimarx/migration-mysql-iris。
克隆项目:https://github.com/yurimarx/migration-mysql-iris.git。
转到项目文件夹migration-mysql-iris。
进行构建:docker-compose build。
执行容器:docker-compose up -d。
我的几个孩子都很喜欢手工艺品,您可能会觉得作为一个父亲我会用夸张的表情表扬他们很有创意然后还拍照片发到Pinterest(世界上最大的图片社交分享网站)上去,但是我从来都没这么做过。我肯定爱我的孩子,我也确实认为他们有创意,但老实讲如果你有一个正上小学的孩子,你肯定很清楚他们实际的水平。
第四十五章 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兼容。
听IRIS 专家聊IRIS,学技术,练英语听力,尽在Intersystems 系联在线培训广播电台
https://datapoints.intersystems.com.
21. Embedded Python — Released February 3, 2022
20. The InterSystems Kubernetes Operator — Released July 27, 2021 [Transcript available]
19. What's New in Version 2021.1 of InterSystems IRIS? — Released June 3, 2021
18. The InterSystems IRIS® FHIR® Accelerator Service — Released May 5, 2021
17. The Analytics & AI Landscape — Released April 6, 2021
16. A Cloud DBMS Visionary — Released January 27, 2021
15. Writing ObjectScript in VS Code — Released November 17, 2020
第四十四章 SQL函数 DATENAME
日期/时间函数,它返回一个字符串,表示日期/时间表达式中指定部分的值。
参数
datepart- 要返回的日期/时间信息类型。 日期或时间部分的名称(或缩写)。 可以用大写或小写指定该名称,也可以不加引号。 可以将datepart指定为文字或主机变量。date-expression- 要返回datepart值的日期、时间或时间戳表达式。 日期表达式必须包含datepart类型的值。
描述
DATENAME函数返回日期/时间值中指定部分的名称(例如“June”)。
结果作为数据类型VARCHAR(20)返回。
如果结果是数字(例如“23”表示当天),它仍然作为VARCHAR(20)字符串返回。
要以整数形式返回此信息,请使用DATEPART。
要返回包含多个日期部分的字符串,请使用TO_DATE。
请注意,DATENAME是为Sybase和Microsoft SQL Server兼容性而提供的。
这个函数也可以通过调用DATENAME()方法从ObjectScript调用:
$SYSTEM.SQL.Functions.DATENAME(datepart,date-expression)
Datepart 参数
datepart参数可以是包含一个(且仅包含一个)以下日期/时间组件的字符串,可以是全名(date Part列),也可以是缩写(缩写列)。
[toc]
第四十三章 SQL函数 DATEDIFF
日期/时间函数,返回两个日期之间指定日期部分的整数差。
大纲
DATEDIFF(datepart,startdate,enddate)
参数
datepart- 日期或时间部分的名称(或缩写)。这个名称可以用大写或小写来指定,有或没有引号。datepart可以指定为文字或主机变量。startdate- 间隔的开始日期/时间。可以是各种标准格式的日期、时间或日期时间。enddate- 间隔的结束日期/时间。可以是各种标准格式的日期、时间或日期时间。从enddate中减去startdate,以确定两个日期之间的日期部分间隔。
描述
DATEDIFF函数返回两个指定日期之间指定日期部分差的整数。日期范围从开始日期开始,到结束日期结束。(如果enddate早于startdate,DATEDIFF将返回一个负整数值。)
DATEDIFF返回startdate和enddate之间指定单位的总数。例如,两个日期时间值之间的分钟数计算日期部分和时间部分,并为每一天的差异增加1440分钟。DATEDIFF返回开始日期和结束日期之间跨越的指定日期部分边界的计数。例如,指定连续年份的任意两个日期(例如2018-09-23和2019-01-01)返回的年份DATEDIFF为1,而不管这两个日期之间的实际持续时间是大于还是小于365天。
第四十二章 SQL函数 DATEADD
一个日期/时间函数,它返回一个时间戳,计算方法是在一个日期或时间戳中添加或减去若干日期部件单位(如小时或天)。
大纲
DATEADD(datepart,integer-exp,date-exp)
参数
datepart- 日期或时间部分的名称(或缩写)。 可以用大写或小写指定该名称,也可以不加引号。 可以将datepart指定为文字或主机变量。integer-exp- 任意数字类型的数字表达式。 该值被截断为整数(正或负)。 该值指示将添加到(或从)date-exp中减去的datepart单元的数量。date-exp- 要修改的日期/时间表达式。它可以是日期字符串,也可以是时间戳字符串(%PosiTime或%Timestamp数据类型),也可以是CURRENT_DATE之类的函数。返回的值始终是时间戳,数据类型格式为%PosiTime或%Timestamp。
描述
DATEADD函数通过将指定的日期部分递增指定的单元数来修改日期/时间表达式。
例如,如果datepart为“month”且整数-exp为5,则DATEADD将date-exp递增5个月。
还可以通过为integer-exp指定一个负整数来减少日期部分。
计算出的日期将作为完整的日期/时间表达式(时间戳)返回。返回的数据类型取决于Date-EXP的数据类型。
第四十一章 SQL函数 DATE
接受时间戳并返回日期的函数。
大纲
DATE(timestamp)
参数
timestamp- 指定时间戳或其他日期或日期和时间表示形式的表达式。
描述
Date接受时间戳表达式并返回日期。返回值的数据类型为Date。这在功能上与CAST相同(时间戳与日期相同)。它接受具有以下任何数据类型类(或其子类)的时间戳值:%Library.TimeStamp、%Library.PosiTime、%Library.Date和%Library.Integer或%Library.Numerical(用于隐式逻辑日期,如+$HOROLOG)。它还可以接受格式与%Library.TimeStamp(有效的ODBC日期)兼容的%Library.String值。
无效的ODBC日期字符串的计算结果为零,与日期1840年12月31日相对应。时间戳可以只包含ODBC格式的日期或ODBC格式的日期和时间。虽然只转换ODBC时间戳的日期部分,但会验证整个字符串。如果日期部分不完整、日期或时间部分包含超出范围的值(包括闰年计算),或者时间戳包含任何无效的格式字符或尾随字符,则ODBC时间戳验证失败。
空字符串(‘’)参数返回0(1840年12月31日)。NULL参数返回NULL。
第四十章 SQL函数 DATALENGTH
返回表达式中字符数的函数。
大纲
DATALENGTH(expression)
参数
expression- 表达式,可以是列的名称、字符串字面值或另一个标量函数的结果。 基础数据类型可以是字符类型(如CHAR或VARCHAR)、数字或数据流。
DATALENGTH返回INTEGER数据类型。
描述
注意:DATALENGTH、CHAR_LENGTH和CHARACTER_LENGTH函数是相同的。
对于新代码,建议使用CHAR_LENGTH函数。
DATALENGTH是为TSQL兼容性而提供的。
第三十九章 SQL函数 DATABASE
返回数据库名称限定符的标量字符串函数。
大纲
{fn DATABASE()}
描述
DATABASE返回与连接句柄对应的数据库名称的当前限定符。
在IRIS中,DATABASE总是返回空字符串(")。
各种技术在交换数据的时候,就需要知道对方给的数据使用什么字符集和字符编码,否则很可能就解码错了。这里列举了医疗行业常见的数据交换技术方式和它们对字符集使用的声明方式。
Linux内核机制OOM Killer,也即Out of Memory Killer, 顾名思义,该机制的主要职能就是当内存不足时,选择并杀掉一些进程,以使系统继续运行。
Caché/Ensemble/IRIS的多个客户曾经遇到过与此相关的系统宕机,宕机的直接原因是数据库核心写进程Write Daemon被OOM Killer选中并杀掉了,在我们的日志文件中可以看到如下信息,
06/15/21-10:50:31:035 (13579) 3 Daemon WRTDMN (pid 13588) died.如果想快速查看锁表空间的使用情况,可以通过GetLockSpaceInfo()方法来获得。
%SYS>w ##class(SYS.Lock).GetLockSpaceInfo() 4717392,4712512,1200
返回值是 "AvailableSpace,UsableSpace,UsedSpace",每个值的单位都是Byte。
AvailableSpace:锁表的总空间减去已用空间的大小(UsedSpace)。
UsableSpace:预估的可用空间。AvailableSpace里有一些空间是系统内部保留的,所以UsableSpace比AvailableSpace要小。UsableSpace是用户在锁表中可用的自由空间的数量。
UsedSpace:已经使用的空间。
第三十八章 SQL函数 CURTIME
返回当前本地时间的标量日期/时间函数。
大纲
{fn CURTIME()}
{fn CURTIME}
描述
``不接受任何参数。它将当前本地时间作为数据类型TIME返回。请注意,参数括号是可选的。CURTIME返回此时区的当前本地时间;它根据本地时间变量(如夏令时)进行调整。
逻辑模式下的CURTIME以$HOROLOG格式返回当前本地时间;
例如,37065年。
显示模式下的CURTIME以区域设置的默认格式返回当前本地时间;
例如,10:18:27。
小时以24小时格式表示。
要更改默认的时间格式,使用SET OPTION命令和TIME_FORMAT和TIME_PRECISION选项。
要只返回当前时间,请使用CURTIME或CURRENT_TIME。
这些函数以TIME数据类型返回它们的值。
CURRENT_TIMESTAMP、GETDATE和NOW函数也可以作为TIMESTAMP数据类型返回当前日期和时间。
请注意,除了GETUTCDATE之外,所有 SQL时间和日期函数都特定于当地时区设置。
要获得通用的(独立于时区的)当前时间戳,你可以使用GETUTCDATE或ObjectScript $ZTIMESTAMP特殊变量。
在使用嵌入式SQL时,这些数据类型的性能不同。
第三十七章 SQL函数 CURRENT_TIMESTAMP
日期/时间函数,返回当前本地日期和时间。
大纲
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP(precision)
参数
precision- 一个正整数,它将时间精度指定为小数秒的位数。 默认值是0(没有小数秒); 这个默认值是可配置的。
CURRENT_TIMESTAMP返回TIMESTAMP数据类型。
描述
CURRENT_TIMESTAMP要么不接受参数,要么接受精度参数。
不允许使用空参数括号。
CURRENT_TIMESTAMP返回当前时区的本地日期和时间;
它会根据当地的时间变化进行调整,例如日光节约时间。
CURRENT_TIMESTAMP可以返回%timestamp数据类型格式(yyyy-mm-dd hh:mm:ss.ffff)或%PosixTime数据类型格式(编码的64位带符号整数)的时间戳。
以下规则决定返回哪种时间戳格式:
-
如果将当前时间戳提供给数据类型为
%PosixTime的字段,则当前时间戳值将以PosixTime数据类型格式返回。 例如,WHERE PosixField=CURRENT_TIMESTAMP or INSERT INTO MyTable (PosixField) VALUES (CURRENT_TIMESTAMP).
第三十六章 SQL函数 CURRENT_TIME
返回当前本地时间的日期/时间函数。
大纲
CURRENT_TIME
CURRENT_TIME(precision)
参数
precision- 一个正整数,它将时间精度指定为小数位数。默认值为0(无小数秒);此默认值是可配置的。
CURRENT_TIME返回时间数据类型。
描述
CURRENT_TIME要么不带参数,要么带精度参数。不允许使用空参数括号。
CURRENT_TIME返回此时区的当前本地时间。它会根据当地时间变化(如夏令时)进行调整。
逻辑模式下的CURRENT_TIME以$HOROLOG格式返回当前本地时间;例如,37065。显示模式下的当前时间以区域设置的默认格式返回当前本地时间;例如,10:18:27。
要更改默认时间格式,请使用带有time_format和time_PRECISION选项的SET OPTION命令。可以配置分数秒的精度,如下所述。
要仅返回当前时间,请使用CURRENT_TIME或CURTIME。这些函数以时间数据类型返回它们的值。CURRENT_TIMESTAMP、GETDATE和NOW函数也可用于将当前日期和时间作为TIMESTAMP数据类型返回。
请注意,除GETUTCDATE之外,所有 SQL时间和日期函数都特定于本地时区设置。
亲爱的社区开发者们,大家好!
欢迎积极参与新一轮InterSystems开发者竞赛!
这次我们聚集Python!
竞赛时间: 2022年2月7日 - 27日
奖金总额: $10000 - 更多获奖机会!
欢迎到我们Global Master 网站完成冬奥小游戏,赢积分,抽奖品(雨伞/保温杯/T-Shirt)。
https://globalmasters.intersystems.com/channels/72
不知道如何玩转Global Master, 请参考:认识Global Masters 倡导中心,从这里开始! | InterSystems Developer Community | Global
.png)
.png)


