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)
第三十五章 SQL函数 CURRENT_DATE
日期/时间函数,返回当前本地日期。
大纲
CURRENT_DATE
描述
CURRENT_DATE不带任何参数。它将当前本地日期作为数据类型DATE返回。不允许使用参数括号。CURRENT_DATE返回此时区的当前本地日期;它根据本地时间变量(如夏令时)进行调整。
在逻辑模式下CURRENT_DATE以$HOROLOG格式返回当前本地日期;
例如,64701。
显示模式下的CURRENT_DATE以区域设置的默认格式返回当前本地日期。
例如,在美国的区域设置为02/22/2018,在欧洲的区域设置为22/02/2018,在俄罗斯的区域设置为22.02.2018。
要指定不同的日期格式,请使用TO_DATE函数。要更改默认日期格式,请将SET OPTION命令与DATE_FORMAT、Year_OPTION或DATE_SEFACTOR选项配合使用。
要仅返回当前日期,请使用CURRENT_DATE或CURDATE。这些函数以DATE数据类型返回它们的值。CURRENT_TIMESTAMP、GETDATE和NOW函数也可用于将当前日期和时间作为TIMESTAMP数据类型返回。
请注意,除GETUTCDATE之外,所有 SQL时间和日期函数都特定于本地时区设置。
@Robert Cemper 我们全球(几乎是)最资深最活跃粉丝最多的社区成员 (最畅销!). Robert 老师从1970年代就开始从事软件行业,从1978年就开始从事MUMPS, DSM, ... Caché, ...IRIS等等直到今天还在活越地写代码。所以跟着Robert老师超过100篇的社区文章中学习 InterSystems 技术是最好不过的选择了。我们按照主题精选了一些文章,后面会陆续翻译,大家希望优先翻译哪一篇,欢迎在评论区留言。
关于SQL
DB Migration using SQLgateway IRIS 使用
第三十四章 SQL函数 CURDATE
返回当前本地日期的标量日期/时间函数。
大纲
{fn CURDATE()}
{fn CURDATE}
描述
CURDATE不接受任何参数。它将当前本地日期作为数据类型DATE返回。请注意,参数括号是可选的。CURDATE返回此时区的当前本地日期;它根据本地时间变量(如夏令时)进行调整。
逻辑模式下的CURDATE以$HOROLOG格式返回当前本地日期;
例如,64701。
显示模式下的CURDATE以区域设置的默认格式返回当前本地日期。
例如,在美国的区域设置为02/22/2018,在欧洲的区域设置为22/02/2018,在俄罗斯的区域设置为22.02.2018。
要指定不同的日期格式,请使用TO_DATE函数。
要更改默认的日期格式,使用SET OPTION命令和DATE_FORMAT、YEAR_OPTION或DATE_SEPARATOR选项。
要只返回当前日期,请使用CURDATE或CURRENT_DATE。
这些函数返回DATE数据类型的值。
CURRENT_TIMESTAMP、GETDATE和NOW函数也可以作为TIMESTAMP数据类型返回当前日期和时间。
请注意,除了GETUTCDATE之外,所有 SQL时间和日期函数都特定于当地时区设置。
有时需要将数据和数据模型Schema从Postgres转移或迁移到IRIS。目前有几个选择可以做到这一点,但最流行的两个选项是使用DBeaver(https://openexchange.intersystems.com/package/DBeaver)或SQLGateway。第一种方法… Cemper的一篇优秀文章中介绍,使用 SQLgateway 迁移数据库(https://community.intersystems.com/post/db-migration-using-sqlgateway),请看本文中如何使用DBeaver执行这种迁移。
为迁移过程获取样本数据
在Github上可以下载一个docker compose项目来构建和运行两个数据库。:
- 源数据库: 带有样本数据库的PostgreSQL 数据库 Docker 实例 .
- 目标数据库: 带有Schema就绪接受源数据库的InterSystems IRIS 数据平台Docker 实例.
要获得样本并运行它,请遵循以下步骤:
- 到 https://openexchange.intersystems.com/package/migration-pg-iris-dataset 下载并到 git repository.
- 克隆项目: git clone https://github.
亲爱的开发者们,
很高兴同大家分享一个好消息!我们中文社区版主、InterSystems高级销售工程师Louis(@Louis Lu)于近日顺利通过“HL7 FHIR R4 Proficiency Exam”并取得资格认证证书!
第三十三章 SQL函数 COT
标量数值函数,返回角度的余切值(以弧度为单位)。
大纲
{fn COT(numeric-expression)}
参数
numeric-expression- 数值表达式。 这是一个用弧度表示的角。
COT返回NUMERIC或DOUBLE数据类型。
如果数值表达式是数据类型DOUBLE, COT返回DOUBLE;
否则,返回NUMERIC。
描述
COT接受任何非零数,并以浮点数的形式返回它的余切值。
如果传入NULL值,COT将返回NULL。
数值0(0)会导致运行时错误,生成SQLCODE -400(发生致命错误)。
COT将非数字字符串视为数值0。
COT返回一个精度为36、刻度为18的值。
COT只能用作ODBC标量函数(使用花括号语法)。
可以使用DEGREES函数将弧度转换为角度。
可以使用RADIANS函数来转换角度到弧度。
示例
下面的例子展示了COT的效果:
SELECT {fn COT(0.52)} AS Cotangent
1.746536264145397165
SELECT {fn COT(124.1332)} AS Cotangent
-0.040311998371146672
现代医疗有无数来自数字技术的机会,包括优化流程的指挥中心、支持洞察力和决策的人工智能和机器学习、提供实时数据的物联网和连接设备,以及管理和保护大型数据流的强大数字基础设施。创建数字孪生和使用虚拟技术来推动医疗行业的真实世界价值将这一切结合起来。
数字孪生在医疗领域的真实世界价值
数字孪生是一个物理对象或过程的虚拟副本,通过模拟和反馈物理对应物来学习和发展。它在动态系统建模的同时部署了人工智能和机器学习,并适用于医疗保健和生命科学环境。数字孪生创造了一个机会,在实施干预措施、路径变化和操作改进之前,对系统的影响进行建模和预测,以实现效益最大化和风险最小化。
这种模拟创造了以下机会:测试情景以预测影响和帮助决策(例如,在系统设计和病人治疗中);识别低效、瓶颈和机会,并模拟效益/副作用(例如,在流程优化中);自动化反应和决策(例如,在环境控制中);以及越来越多地在虚拟环境中进行测试(例如,硅研究 - 美国和欧洲监管机构都在探索在新医疗药物和技术的审批中使用此类 "数字证据")。

.png)

