地震数据专家[DataEQ]地震会商技术系统

DatistEQ之F函数

2020-07-20  本文已影响0人  了无_数据科学

字符串格式显示是数据专家中的常用的功能之一。F函数是为了替代format();原先赋值需要占位符和变量,当需要拼接多个变量会造成语句过长等不易理解问题, F函数可以把字符串中的变量{}包含起来达到变量的目的F("{id}");也支持表达式,使用F("{表达式}")。

F函数使用格式为:

F('{表达式1:格式参数1} {表达式2:格式参数2}') 
 
例如:
F('包子{5+5:N2}元{3}个') 
结果为 :包子10.00元3个

一、标准数字格式字符串[1]

标准数字格式字符串用于格式化通用数值类型。 标准数字格式字符串采用 Axx 的形式,其中:

下表介绍标准数字格式说明符并显示每个格式说明符产生的示例输出。

1、 “C”或“c”,格式化货币

跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元。默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数。
类型支持:所有数值类型。
精度说明符:十进制小数位数。

例:
F('{123.456 :C}')     结果为 : ¥123.46(截取会自动四舍五入)
F('{-123.456 :C3}')  结果为 :¥-123.456

2、“D”或“d”,格式化十进制的数字

格式化成固定的位数,位数不能少于未格式化前,只支持整形。
类型支持:仅限整型类型。
精度说明符:数字位数下限。

例:
F('{1234 :D}')   结果为 : 1234
F('{-1234 :D6}') 结果为 : -001234

3、“E”或“e” , 指数(科学型),输出指数表示法。

类型支持:所有数值类型。
精度说明符:十进制小数位数。

例:
F('{1052.0329112756 :E}')   结果为 : 1.052033E+003
F('{1052.0329112756 :e}')   结果为 : 1.052033e+003
F('{1052.0329112756 :E2}')   结果为 :1.05E+003
F('{1052.0329112756 :e2}')   结果为 :1.05e+003

4、“F”或“f” ,小数位,输出整数和十进制小数。

类型支持:所有数值类型。
精度说明符:十进制小数位数。

例:
F('{1234.567 :F}') 结果为 :1234.57
F('{1234 :F1}') 结果为 :1234.0
F('{-1234.56 :F4}') 结果为 :-1234.5600

5、 “N”或“n” ,数字

用分号隔开的数字,并指定小数点后的位数。
类型支持:所有数值类型。
精度说明符:所需的小数位数。

例:
F('{1234.567:N}')  结果为 : 1,234.57(默认为小数点后面两位)
F('{1234:N1}')   结果为 :1,234.0
F('{-1234.2458 :N3}') 结果为 :-1,234.246 (自动四舍五入)

6、 “P”或“p” , 格式化百分比

结果:数字乘以 100 并以百分比符号显示。

类型支持:所有数值类型。
精度说明符:所需的小数位数。

例:
F('{1 :P}')   结果为 :100.00 % (默认保留百分的两位小数)
F('{-0.39678:P1}') 结果为 :-39.7% (自动四舍五入)

7、“X”或“x” ,转换为十六进制字符串。

类型支持:仅限整型类型。
精度说明符:结果字符串中的位数。

例:
F('{255:X}')   结果为 : FF
F('{-1:x}')   结果为 : ffffffffffffffff
F('{255:x4}') 结果为 :00ff
F('{-1:X4}')  结果为 :FFFFFFFFFFFFFFFF

8、零占位符和数字占位符

例:
F('{12394.039:0000.00}')   结果为:12394.04
F('{194.039:0000.00}')     结果为:0194.04(补齐不够的零)
F('{194.039:0.00000}')     结果为:194.03900(补齐不够的零)
F('{12394.039:####.##}')   结果为:12394.04(自动四舍五入)
F('{194.039:####.#}')      结果为:194(剔除未尾的零字符)

下面的这段说明比较难理解,多测试一下实际的应用就可以明白了。

二、标准日期和时间格式字符串

例:
F('{now():d}')  结果为: 2020/7/20(月份位置不是07)
F('{now():D}')  结果为: 2020年7月20日
F('{now():f}')  结果为: 2020年7月20日 11:01
F('{now():F}')  结果为:2020年7月20日 11:01:10 
F('{now():g}')  结果为:2020/7/20 11:01
F('{now():G}')  结果为:2020/7/20 11:02:18
F('{now():m}')  结果为:7月20日
F('{now():t}')  结果为:11:03
F('{now():T}')  结果为:11:03:39

自定义日期和时间格式字符串
"d" 一个月中的某一天(1 到 31)。
2009-06-01T13:45:30 -> 1
2009-06-15T13:45:30 -> 15

“dd” 一个月中的某一天(01 到 31)。
2009-06-01T13:45:30 -> 01
2009-06-15T13:45:30 -> 15

“ddd” 一周中某天的缩写名称。
2009-06-15T13:45:30 ->周一

“dddd” 一周中某天的完整名称。
2009-06-15T13:45:30 -> 星期一

“f” 日期和时间值的十分之几秒。
2009-06-15T13:45:30.6170000 -> 6
2009-06-15T13:45:30.05 -> 0

“ff” 日期和时间值的百分之几秒。
2009-06-15T13:45:30.6170000 -> 61
2009-06-15T13:45:30.0050000 -> 00

“fff” 日期和时间值的千分之几秒。
6/15/2009 13:45:30.617 -> 617
6/15/2009 13:45:30.0005 -> 000

“ffff” 日期和时间值的万分之几秒。
2009-06-15T13:45:30.6175000 -> 6175
2009-06-15T13:45:30.0000500 -> 0000

“fffff” 日期和时间值的十万分之几秒。

2009-06-15T13:45:30.6175400 -> 61754
6/15/2009 13:45:30.000005 -> 00000

“ffffff” 日期和时间值的百万分之几秒。
2009-06-15T13:45:30.6175420 -> 617542
2009-06-15T13:45:30.0000005 -> 000000

“fffffff” 日期和时间值的千万分之几秒。
2009-06-15T13:45:30.6175425 -> 6175425
2009-06-15T13:45:30.0001150 -> 0001150

“F” 如果非零,则为日期和时间值的十分之几秒。
2009-06-15T13:45:30.6170000 -> 6
2009-06-15T13:45:30.0500000 ->(无输出)

“FF” 如果非零,则为日期和时间值的百分之几秒。
2009-06-15T13:45:30.6170000 -> 61
2009-06-15T13:45:30.0050000 ->(无输出)

“FFF” 如果非零,则为日期和时间值的千分之几秒。
2009-06-15T13:45:30.6170000 -> 617
2009-06-15T13:45:30.0005000 ->(无输出)

“FFFF” 如果非零,则为日期和时间值的万分之几秒。
2009-06-15T13:45:30.5275000 -> 5275
2009-06-15T13:45:30.0000500 ->(无输出)

“FFFFF” 如果非零,则为日期和时间值的十万分之几秒。
2009-06-15T13:45:30.6175400 -> 61754
2009-06-15T13:45:30.0000050 ->(无输出)

“FFFFFF” 如果非零,则为日期和时间值的百万分之几秒。
2009-06-15T13:45:30.6175420 -> 617542
2009-06-15T13:45:30.0000005 ->(无输出)

“FFFFFFF” 如果非零,则为日期和时间值的千万分之几秒。
2009-06-15T13:45:30.6175425 -> 6175425
2009-06-15T13:45:30.0001150 -> 000115

“g”、“gg” 时期或纪元。
2009-06-15T13:45:30.6170000 -> A.D.

“h” 采用 12 小时制的小时(从 1 到 12)。
2009-06-15T01:45:30 -> 1
2009-06-15T13:45:30 -> 1

“hh” 采用 12 小时制的小时(从 01 到 12)。
2009-06-15T01:45:30 -> 01
2009-06-15T13:45:30 -> 01

“H” 采用 24 小时制的小时(从 0 到 23)。
2009-06-15T01:45:30 -> 1
2009-06-15T13:45:30 -> 13

“HH” 采用 24 小时制的小时(从 00 到 23)。
2009-06-15T01:45:30 -> 01
2009-06-15T13:45:30 -> 13

“m” 分钟(0 到 59)。
2009-06-15T01:09:30 -> 9
2009-06-15T13:29:30 -> 29

“mm” 分钟(00 到 59)。
2009-06-15T01:09:30 -> 09
2009-06-15T01:45:30 -> 45

“M” 月份(1 到 12)。
2009-06-15T13:45:30 -> 6

“MM” 月份(1 到 12)。
2009-06-15T13:45:30 -> 06

“MMM” 月份的缩写名称。
2009-06-15T13:45:30 -> Jun (en-US)
2009-06-15T13:45:30 -> juin (fr-FR)
2009-06-15T13:45:30 -> Jun (zu-ZA)

“MMMM” 月份的完整名称。
2009-06-15T13:45:30 -> June (en-US)
2009-06-15T13:45:30 -> juni (da-DK)
2009-06-15T13:45:30 -> uJuni (zu-ZA)

“s” 秒(0 到 59)。
2009-06-15T13:45:09 -> 9

“ss” 秒(00 到 59)。
2009-06-15T13:45:09 -> 09

“tt” AM/PM 指示符。
2009-06-15T13:45:30 -> 下午

“y” 年份(0 到 99)。
0001-01-01T00:00:00 -> 1
0900-01-01T00:00:00 -> 0
1900-01-01T00:00:00 -> 0
2009-06-15T13:45:30 -> 9
2019-06-15T13:45:30 -> 19

“yy” 年份(00 到 99)。

0001-01-01T00:00:00 -> 01
0900-01-01T00:00:00 -> 00
1900-01-01T00:00:00 -> 00
2019-06-15T13:45:30 -> 19

“yyy” 年份(最少三位数字)。
0001-01-01T00:00:00 -> 001
0900-01-01T00:00:00 -> 900
1900-01-01T00:00:00 -> 1900
2009-06-15T13:45:30 -> 2009

“yyyy” 由四位数字表示的年份。
0001-01-01T00:00:00 -> 0001
0900-01-01T00:00:00 -> 0900
1900-01-01T00:00:00 -> 1900
2009-06-15T13:45:30 -> 2009

“yyyyy” 由五位数字表示的年份。
0001-01-01T00:00:00 -> 00001
2009-06-15T13:45:30 -> 02009

“z” 相对于 UTC 的小时偏移量,无前导零。
2009-06-15T13:45:30-07:00 -> -7

“zz” 相对于 UTC 的小时偏移量,带有表示一位数值的前导零。
2009-06-15T13:45:30-07:00 -> -07

“zzz” 相对于 UTC 的小时和分钟偏移量。
2009-06-15T13:45:30-07:00 -> -07:00

例:
 F('{todatetime("2009-06-15T13:45:30.6175420 "):yyyy-MM-dd HH:mm:ss}')  结果为2009-06-15 13:45:30
上一篇 下一篇

猜你喜欢

热点阅读