常见日期处理函数

编辑
  • 文档创建者:印然
  • 浏览次数:17808次
  • 编辑次数:12次
  • 最近更新:jiangsr 于 2018-02-28
  • 1.描述

    在对日期型数据进行操作时,经常会遇到要获取当前日期,获取当前时间,获取日期的年月日等等操作,下面我们就来介绍下日期的常用处理函数。

    注:这是是讲的帆软处理日期函数,SQL在处理日期时所区别,如:获取当天日期SQL为,GETDATE(),而帆软为today()。

    2.转化日期

    DATE(year,month,day): 返回一个表示某一特定日期的系列数。
    注:year,month,day若为小数将自动去掉小数取整,如:2001.5返回值为2001,2001.1返回值为2001。下面只讨论整数情况。
    Year:代表年。
    若为正整数不变,若为0或负整数,则取绝对值+1。如:year=-5,则year返回值为6,即(|-5|+1)。
    Month:代表月份。
    若month为1至12的整数,则函数把参数值作为月。
    若month>12,则函数从年的一月份开始往上累加。如: DATE(2000,25,2)返回值为2002-01-02。
    若month=<0,则函数从上年的12月份开始往减去相应的月数。如:DATE(2000,0,2)返回值为1999-12-02;DATE(2000,-1,2)返回值为1999-11-02。
    注:日期同理,若超过最大天数,会从月的一号开始向上累加;小于月初天数则从上月末减去相应的月数。如:DATE(2000,3,0)返回值为2000年2月月末,即2000-02-29。
    Day:代表日。
    若日期小于等于某指定月的天数,则函数将此参数值作为日。
    若日期大于某指定月的天数,则函数从指定月份的第一天开始往上累加。若日期大于两个或多个月的总天数,则函数把减去两个月或多个月的余数加到第三或第四个月上,依此类推。例如:DATE(2000,3,35)返回值为2000-04-04。
    注:
    若需要处理公式中日期的一部分,如年或月等,则可用此公式。
    若年,月和日是函数而不是函数中的常量,则此公式最能体现其作用。
    示例:
    DATE(1978, 9, 19) 返回值为 1978-09-19。
    DATE(1211, 12, 1) 返回值为 1211-12-01。
    在单元格中输入:=date(2011,1,10),其返回值为2011-01-10。
    若月份大于12将从年的一月份开始往上累加,如在单元格中输入:=date(2011,13,10),其返回值为2012-01-10。

    3.获取当前日期、时间

    3.1 当前日期(年月日)
    today()即获取当前日期。
    在单元格中输入=today(),若系统日期是2011年11月11号,则返回值为2011-11-11。
    3.2 当前时间(时分秒)
    now()即获取当前日期与时间。
    在单元格中输入=now(),返回值类型为日期,yyyy-MM-dd hh:mm:ss;如:now(),格式:常规,返回的值2012-06-20 14:55:57。

    4.获取日期的年月日

    分别通过year(),month(),day()这三个函数来获取日期的年月日。
    获取年份:在单元格中输入=year("2011-11-11"),返回值为2011。
    获取月份:在单元格中输入=month("2011-11-11"),返回值为11。
    获取日期:在单元格中输入=day("2011-11-11"),返回值为11。
    注:若year(),month(),day()对应的年\月\日带有小数,将返回当前年或月或日,相当于year(today()),month(today()),day(today())。

    5.将日期格式化

    可以使用todate()函数将任何日期形式的数据转化为日期型,或者使用format()函数可以转化成任何日期形式的数据。
    5.1 将日期格式的字符串转化成日期型
    todate()可以将任何日期形式的数据转化成日期型即:yyyy-MM-dd型数据。
    在单元格中输入=todate("2011/11/11"),返回值为2011-11-11。
    在单元格中输入=todate("2/15/11","MM/dd/yy"),返回值为2011-02-15。
    5.2 将日期型数据转化成其他格式的日期形式
    format()可以将日期型数据转化成其他形式的数据。
    在单元格中输入=format("2/15/2011","dd/MM/yyyy"),返回值为15/02/2011。
    在单元格中输入=format("2/15/2011","yyyy-MM-dd"),返回值为2011-02-15。

    6.日期的加减

    可以通过datedelta()monthdelta()yeardelta()这三个函数来实现对日期的加减。
    日期的加减:在单元格中输入=datedelta(today(),-1),返回当前日期前一天的日期,若系统日期是2011-11-11,则返回值为2011-11-10。
    注:公式中的-1表示减一天若是正数则表示加相应的天数。
    月份的加减:在单元格中输入=monthdelta(today(),-1),返回当前日期上一个月的日期,若系统时间是2011-11-11,则返回值为2011-10-11。
    年份的加减:在单元格中输入=yeardelta(today(),-1),返回当前日期上一年的日期,若系统日期是2011-11-11,则返回值为2010-11-11。

    7.获取某月的第几天

    可以通过dateinmonth(date, number)来获取某月的第几天。
    在单元格中输入=dateinmonth(today(),1),返回当前月的第一天,若系统日期是2011-11-11,则返回值为2011-11-01。
    在单元格中输入=dateinmonth(today(),-1),返回当前月的最后一天,若系统日期是2011-11-11,则返回值为2011-11-30。

    8.阳历转化成农历

    可以通过lunar(year,day,month)函数来实现将阴历转化成公历。
    在单元格中输入:=lunar(2011,10,11),返回的是2011年10月11号对应的农历日期即返回值为辛卯年九月十五。
    在单元格中输入:=lunar(2011,10,1),返回的是2011年10月1号对应的农历日期即返回值为辛卯年九月初五。

    注:lunar公式支持的时间段为1900-2100年。

    9.获取某月的当月、上月、去年同期等

    9.1 当月
    MONTH(today())
    9.2 去年同期
    YEARDELTA(today(),-1)
    9.3 上上月
    date(year(today()),MONTH(today())-2,day(today()))
    9.4 上月
    date(year(today()),MONTH(today())-1,day(today()))
    9.5 去年同期上月
    date(year(today())-1,MONTH(today())-1,day(today()))

    附件列表


    主题: 专题总结
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]