1. 概述
在对日期型数据进行操作时,经常会遇到要获取当前日期、获取当前时间、获取日期的年月日等等操作。
在 FineDataLink 中可以在新增计算列中实现。
注:其中的日期字段需要从函数编辑框左侧的字段中选择,不能手动输入。
2. 获取指定日期时间
实现内容 | 公式 | 结果 | |
---|---|---|---|
获取当前时间 | |||
获取当前日期(年月日) | today() | 若系统日期是 2011 年 11 月 11 号,则返回值为 2011-11-11 | |
获取当前时间(时分秒) | now() | 若单元格格式为常规,系统日期是 2012 年 06 月 20 号,返回的值 2012-06-20 14:55:57 | |
获取日期的年、月、日 | |||
获取年份 | year("2011-11-11") | 返回值为 2011 | |
获取月份 | month("2011-11-11") | 返回值为 11 | |
获取日期 | day("2011-11-11") | 返回值为 11 | |
年月日时分秒 获取年月日 | TODATE(FORMAT(2023-06-13 00:01:27,"yyyy-MM-dd")) | 注:时间字段需要为数值或者是日期类型格式 返回值为 2023-06-13 00:00:00 | |
获取某年/季度/月/周的第几天 | |||
昨天 | NOW()-1 | 若系统时间为 2021-11-09 11:43:53,则返回 2021-11-08 11:43:53 | |
年初第一天 | DATE(YEAR(NOW()),01,01) | 若系统时间为 2011-11-11,则返回 2011-01-01 | |
月初 | DATE(YEAR(NOW()),MONTH(NOW()),01) | 若系统时间为 2011-11-11,则返回 2011-11-01 | |
距今已过多少天 | DATEDIF(date(year(日期),month(日期),1),today(),"D") | 若日期为2021-10-10,系统时间为2021-11-09,则返回 39 | |
当年第几周 | week(today()) | 若日期为2021-10-10,则返回 41 | |
获取相对于当前月份的某时间 | |||
当月 | MONTH(today()) | 若系统日期是 2011-11-11,则返回值为 11 | |
上上月 | date(year(today()),MONTH(today())-2,day(today())) | 若系统日期是 2011-11-11,则返回值为 2011-09-11 | |
上月 | date(year(today()),MONTH(today())-1,day(today())) | 若系统日期是 2011-11-11,则返回值为 2011-10-11 | |
去年同期上月 | date(year(today())-1,MONTH(today())-1,day(today())) | 若系统日期是 2011-11-11,则返回值为 2010-10-11 | |
当月月末 | DATE(YEAR(日期),MONTH(日期)+1,1-1) | 若系统日期是 2011-11-11,则返回值为 2011-11-30 | |
当前时间下再增加2个月的 日期 | date(year(today()),MONTH(today())+2,day(today())) | 若系统日期是 2011-10-11,则返回值为 2011-12-11 |
3. 数据格式转化
注:若想转化某列日期字段类型,也可使用 字段设置 算子实现。
实现内容 | 公式 | 结果 | |
---|---|---|---|
数据类型转化 | |||
「文本型」转化成「日期型」 | todate("2011/11/11") | 若系统日期是 2011 年 11 月 11 号,则返回值为 2011-11-11 00:00:00 | |
「文本型」转化成「日期型」 | TODATE("Wed1/15/07","EEEMM/dd/yy") | 将 Wed1/15/07 格式数据转化为 日期格式 2007-01-17 00:00:00 | |
「文本型」转化成「日期型」 | TODATE("2021/02/07Wed","yyyy/MM/ddEEE") | 将2021/02/07Wed 格式数据转化为 日期格式 2021-02-03 00:00:00 | |
「文本型」转化成「日期型」 年月日文本类型转化为日期类型 | TODATE("20200522","yyyyMMdd") | 将 20200522 格式数据转化为 日期格式 2020-05-22 00:00:00 | |
「文本型」转化成「日期型」 年月文本类型转化为日期类型 | TODATE("202005","yyyyMM") | 将 202005 格式数据转化为 日期格式 2020-05-01 00:00:00 | |
「数值型」转化为「日期型」 | TODATE(1621221876057) | 时间型(原字段为 13 位时间戳,精确到毫秒级) 将1621221876057 数据转化为 日期格式 2021-05-17 11:24:36 | |
TODATE(1621221876*1000) | 时间型(原字段需 10 位时间戳,精确到秒级),1秒=1000毫秒 将1621221876 数据转化为2021-05-17 11:24:36 | ||
年月日「文本型」转化为「年月」「文本型」 | FORMAT(TODATE("2020-02-02"),"yyyyMM") | 将2020-02-02数据转化为202002 注:若2020-02-02为日期类型,则不需要todate函数,直接FORMAT("2020-02-02","yyyyMM") | |
「日期型」转换为「数值型」 | DATETONUMBER("2021-05-17") | (原字段为 13 位时间戳,精确到毫秒级) 将2021-05-17 数据转化为数值格式 1,621,180,800,000 | |
(原字段为 13 位时间戳,精确到毫秒级)转换成「文本型」 | format(todate(1621221876057),"yyyy-MM-ddEEE") | 将 162122187605 转化为 2021-05-17Mon | |
将时间型数据转化成其他格式的日期形式 format() | format("2/15/2011","dd/MM/yyyy") | 返回值为 15/02/2011 | |
将年、月、日分多个字段保存,需要将多个字段处理成一个日期字段 | DATE(2020,02,22) | 三个字段 年——2020 月份——02 日——22 转化成日期型 2020-02-22 00:00:00 |