3.常见系统函数

一、字符串处理

1. 长度

    set str="abc"
    write $L(str)

2. 查找字

    w $FIND("123ab456","ab")
    // 输出6

2. 截取

    Set str=”abcd”
    Set subStr=$E(str,2,3)
    subStr: “cd”

3. 分割

M的特色

    Set str=”abcd^123”
    Set subStr=$P(str,”^”,2)
    // subStr: “abcd”
    
    Set subStr=”12”
    Set str=”abcd^123”
    Set $P(str,”^”,2)=subStr
    // subStr: 12

4. 替换

a. $Replace
S newStr=$Replace(str,”xx”,”yy”)
b. $TRanslate,字符替换
    

5.转化为大写

    $$ALPHAUP^SSUTIL4(str) // 支持中文
    $ZCVT(string,”U/L/T”)转换成大小写,和title

6. 进制转化

$ZHEX 转化为十六进制 $factor $bit

7. $ZConvert 按照指定模式表示的字符

二、数值处理

1.是否是有效数值

因M中数值是按字符串存储的,因此常需要验证字符串是否为有效的数值

    $ISVALIDNUM(str)

2.保留小数

    w $fn(1.15,"",1) 
    //输出:1.2

3.取整:

    s intValue=floatvalue\1
    s intValue=$fn(floatvalue,"",0)

4.除法

    // / 除 输出: 2.5
    write 12/5
    
    \ 取除数中的整数,输出: 2
    write 12\5

5.取余

    // 输出: 1
    write 11/2

6.取绝对值

    // 输出:12
    write $ZABS(-12)

7.将字符串转化为数值

    set str="123"
    set num=+str

三、日期时间

M中日期、时间一般是分开处理的。日期以整形表示,从12/31/1840开始的天数; 时间是从当晶0点开始的秒数。

1.Int=>转字符

W ##class(web.DHCClinicCom).ConvertToDate(val)
W ##class(web.DHCClinicCom).ConvertToTime(val)

当日期时间:$HOROLOG,以","分隔,格式:日期,时间

w $zd($h,3)         // 转化为yyyy-mm-dd 第二参数为格式类型
w $zt($p($h,”,”,2)) // 转化为HH:MM:SS

2.字符串=>Int

// 日期字符串=>int
W ##class(web.DHCClinicCom).ConvertToDateH(str)
// 时间字符串=>int
W ##class(web.DHCClinicCom). ConvertToTimeH(str)
// 将yyyy-mm-dd格式转化为整形格式类型
w $zdh("2019-05-22",3)
// 将HH:mm:ss格式转化为整形格式类型
w $zth(“12:00”)

3.显示带毫秒的时间

可用于计算执行时间

    $ZTIMESTAMP

四、List操作
这里的List是指Cache数据库中存储数据时使用

    // $ListBuild(element,…)使用括号中的参数产生一个列表。
    set list=$ListBuild("a","b")
    // $List(list,from[,to]) 返回列表中指定范围的元素。
    write $List(list,1)
    // 输出list长度
    write $Length(list)
    

五、数学函数

函数名说明
$ZCOS(n)三角余弦函数
$ZCOT(n)三角余切函数
$ZCSC(n)三角余割函数
$ZARCCOS(n)反三角余弦函数
$ZARCSIN(n)反三角正弦函数
$ZARCTAN(n)反三角正切函数
$Random随机数

其他
是否是有效对象

    $isobject(obj)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值