精华内容
下载资源
问答
  • Hive中查询当月第一天函数trunc()
    千次阅读
    2020-12-03 23:26:00
    • 查询当月第一天
      例: select trunc(‘2020-12-03’,‘MM’) – ‘2020-12-01’

    • 查询当前季度第一天
      例: select trunc(‘2020-12-03’,‘Q’) – ‘2020-10-01’

    • 查询当年第一天
      例: select trunc(‘2020-12-03’,‘YEAR/Y/YYYY’) – ‘2020-12-01’

    更多相关内容
  • 当月第一天:DATEINMONTH(TODAY(),1) 当月最后一天:DATEINMONTH(TODAY(),-1) 上月最后一天:DATEINMONTH(TODAY(),1)-1 下月第一天:DATEINMONTH(TODAY(),-1)+1 当前日期的年份:year(today()) 当前日期的月份:...

    常用举例:

    当年第一天:DATEINYEAR(TODAY(), 1)
    当年最后一天:DATEINYEAR(TODAY(), -1)
    
    当月第一天:DATEINMONTH(TODAY(),1) 
    当月最后一天:DATEINMONTH(TODAY(),-1) 
    上月最后一天:DATEINMONTH(TODAY(),1)-1
    下月第一天:DATEINMONTH(TODAY(),-1)+1
    
    当前日期的年份:year(today())
    当前日期的月份:month(today())
    当前日期的日:day(today())
    
    
    当前日期前一天:datedelta(today(),-1)
    当前日期的上一月:monthdelta(today(),-1)
    当前日期的上一年:yeardelta(today(),-1)
    

    上面这些也不只一种写法。下面是所有日期相关函数的介绍

     

    注意:可以在决策平台中设置以  周天  还是  周一  为一周的开始

     

    1、获取时间:

    获取当前年月日的日期:today()

    获取当前年月日、时分秒的日期:now()

    YEAR:(serial_number)返回日期中的年。Year是介于1900和9999之间的一个数。
    MONTH:(serial_number)返回日期中的月。月是介于1和12之间的一个数。
    week:(serial_number)返回日期中的当年第几周
    DAY:(serial_number)返回日期中的日。DAY是介于1和31之间的一个数。
    HOUR(serial_number)返回某一指定时间的小时数。其值是介于0与23之间的一个整数。
    MINUTE(serial_number)返回某一指定时间的分钟数,其值是介于0与59之间的一个整数。
    SECOND(serial_number)返回某一指定时间的秒数,其值是介于0与59之间的一个整数。

    其中传入的参数可以是多种时间表达形式,以DAY为例:

    DAY("2000/1/1")等于1。
    DAY("2006/05/05")等于5。
    DAY("1997/04/20")等于20。
    DAY("2000-1-1","yyyy-MM-dd")等于1。
    DAY("2006-05-05","yyyy-MM-dd")等于5。
    DAY("1997-04-20","yyyy-MM-dd")等于20。
    DAY(35796)等于1。

     

    2、返回某年、季度、月、周第几天的日期

    DATEINYEAR(date,number):函数返回在一年当中第几天的日期。
    示例:
    DATEINYEAR(2008,100)等于2008-04-09,等价于DATEINYEAR("2008-08-08",100),也返回2008-04-09.
    DATEINYEAR(2008,-1)等于2008-12-31,等价于DATEINYEAR("2008-08-08",-1),也返回2008-12-31。
    
    
    DATEINQUARTER(date,number):函数返回在某一个季度当中第几天的日期。
    示例:
    DATEINQUARTER("2009-05-05",20)等于2009-04-20。
    
    
    DATEINMONTH(date,number):函数返回在某一个月当中第几天的日期。
    示例:
    DATEINMONTH("2008-08-08",20)等于2008-08-20。
    DATEINMONTH("2008-08-08",-1)等于2008-08-31。
    
    
    DATEINWEEK(date,number):函数返回在某一个星期当中第几天的日期。
    示例:
    dateInWeek("2008-08-28",2)等于2008-08-26。
    dateInWeek("2008-08-28",-1)等于2008-08-31。如果最后一个参数为-1,返回该日期所在星期的最后一天。

    3、返回某年、季度、月所包含的天数

    DAYSOFYEAR(year):返回指定日期所在年包含的天数。(指定日期在1900年1月后)
    示例:
    DAYSOFYEAR(2008)等于366,等价于DAYSOFYEAR("2008-01-01")。
    
    
    DAYSOFQUARTER(date):返回指定日期所在季度包含的天数。(指定日期在1900年1月后)
    示例:
    DAYSOFQUARTER("2009-02-01")等于90。
    DAYSOFQUARTER("2009/05/05")等于91。
    
    
    DAYSOFMONTH(date):返回指定日期所在月包含的天数。(指定日期在1900年1月后)
    示例:
    DAYSOFMONTH("1900-02-01")等于28。
    DAYSOFMONTH("2008/04/04")等于30。

    4、返回指定日期增减N年、月、天后的日期

    YEARDELTA(date,delta):返回指定日期后delta年的日期。
    示例:
    YEARDELTA("2008-10-10",10)等于2018-10-10。
    
    MONTHDELTA(date,delta):返回指定日期date后delta个月的日期。
    示例:
    MONTHDELTA("2008-08-08",4)等于2008-12-08。
    
    DATEDELTA(date,deltadays):返回指定日期后delta天的日期。deltaDays可以为正值,负值,零。
    示例:
    DATEDELTA("2008-08-08",-10)等于2008-07-29。
    DATEDELTA("2008-08-08",10)等于2008-08-18。

    5、返回指定日期的时间差值

    DAYVALUE(date):返回1900年1月1日至date日期所经历的天数。
    示例:
    DAYVALUE("2008/08/08")等于39667。
    
    
    DATETONUMBER(date):返回自1970年1月1日00:00:00至date日期所经过的毫秒数。
    示例:
    DATETONUMBER("2008-08-08")等于1218124800000。
    
    
    DATEDIF(start_date,end_date,unit):返回两个指定日期间的天数、月数或年数。
    示例:
    DATEDIF("2001/2/28","2004/3/20","Y")等于3,即在2001年2月28日与2004年3月20日之间有3个整年。
    DATEDIF("2001/2/28","2004/3/20","M")等于37,即在2001年2月28日与2004年3月20日之间有36个整月。
    DATEDIF("2001/2/28","2004/3/20","D")等于1116,即在2001年2月28日与2004年3月20日之间有1116个整天。
    DATEDIF("2001/2/28","2004/3/20","MD")等于8,即忽略月和年后,2001年2月28日与2004年3月20日的差为8天。
    DATEDIF("2001/1/28","2004/3/20","YM")等于2,即忽略日和年后,2001年1月28日与2004年3月20日的差为2个月。
    DATEDIF("2001/2/28","2004/3/20","YD")等于21,即忽略年后,2001年2月28日与2004年3月20日的差为21天。
    注释:
    Start_date:代表所指定时间段的初始日期。
    End_date:代表所指定时间段的终止日期。
    Unit:函数返回信息的类型。
    若unit=“Y”,则DATEDIF返回指定时间段的年差数。
    若unit=“M”,则DATEDIF返回指定时间段的月差数。
    若unit=“D”,则DATEDIF返回指定时间段的日差数。
    若unit=“MD”,则DATEDIF忽略年和月,返回指定时间段的日差数。
    若unit=“YM”,则DATEDIF忽略年和日,返回指定时间段的月差数。
    若unit=“YD”,则DATEDIF忽略年,返回指定时间段的日差数。
    
    
    DATESUBDATE(date1,date2,op):返回两个日期之间的时间差。
    示例:
    DATESUBDATE("2008-08-08","2008-06-06","h")等于1512。
    注释:
    op表示返回的时间单位:"s",以秒为单位。"m",以分钟为单位。"h",以小时为单位。"d",以天为单位。"w",以周为单位。
    
    
    DAYS360(start_date,end_date,method):按照一年360天的算法(每个月以30天计,一年共计12个月),返回两日期间相差的天数,这在会计计算中将会用到。如果财务系统是基于一年12个月,每月30天,可用此函数帮助计算支付款项。
    示例:
    DAYS360("1998/1/30","1998/2/1")等于1
    注释:
    Start_date和end_date:是用于计算期间天数的起止日期。
    Method:它指定了在计算中是采用欧洲方法还是美国方法。
    Method定义:FALSE或忽略美国方法(NASD)。如果起始日期是一个月的31号,则等于同月的30号。如果终止日期是一个月的31号,并且起始日期早于30号,则终止日期等于下一个月的1号,否则,终止日期等于本月的30号。TRUE欧洲方法。无论是起始日期还是终止日期为一个月的31号,都将等于本月的30号。
    备注:
    FineReport将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。在1900年日期系统中,FineReport电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,将1900年1月3日保存为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。

    6、周、星期相关函数

    weekdate(year,month,weekOfMonth,dayOfWeek):返回指定年月的指定周的周几的具体日期。
    示例:
    weekdate(2009,10,2,1)返回的是2009年的10月的第二个周的第一天即星期天的日期,返回的是2009-10-04
    最后一个参数dayOfWeek为-1时,表示这个周的最后一天
    示例:
    weekdate(2009,12,1,-1)返回的是2009年的12月的第一个周的最后一天即星期六的日期,返回的是2009-12-05
    
    
    WEEKDAY(Serial_number):获取日期并返回星期数。返回值为介于0到6之间的某一整数,分别代表星期中的某一天(从星期日到星期六)。
    Serial_number:输入的日期备注:FineReport将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。在1900年日期系统中,FineReport电子表格将1900年1月1日保存为系列数2,将1900年1月2日保存为系列数3,将1900年1月3日保存为系列数4……依此类推。如在1900年日期系统,1998年1月1日存为系列数35796。
    举例:
    WEEKDAY("2005/9/10")等于6(星期六)。
    WEEKDAY("2005/9/11")等于0(星期日)。
    WEEKDAY(35796)等于4(星期四)。

    7、农历与英文时间表示法

    LUNAR (year, month, day):返回当前日期对应的农历时间。
    year,month,day:分别对应年月日。
    示例:
    如果需要查询2011年7月21日对应的农历时间,则只需输入LUNAR(2011,7,21)结果将显示为:辛卯年六月廿一
    同样,如输入LUNAR(2001,7,21),则显示:辛巳年六月初一。
    本公式支持的时间段为1900-2100年。
    
    
    TIME(hour,minute,second):返回指定的日期和时间, 日期会随当天的日期改变。介于0:00:00(12:00:00A.M.)与23:59:59(11:59:59P.M.)之间的时间可返回0到0.99999999之间的对应数值。
    Hour:介于0到23之间的数。
    Minute:介于0到59之间的数。
    Second:介于0到59之间的数。
    示例:
    TIME(14,40,0)等于2:40PM。
    TIME(19,43,24)等于7:43PM。

    8、日期格式相关函数

    DATE(year,month,day):返回一个表示某一特定日期的系列数。
    Year:代表年,一般为四位数。
    Month:代表月份。若month<12,则函数把参数值作为月。若month>12,则函数从年的一月份开始往上累加。若month=0,则表示当年上一年的12月,若-1则表示上一年的11月,以此类推
    例如:DATE(2000,25,2)等于2002年1月2日的系列数。
    Day:代表日。若日期小于等于某指定月的天数,则函数将此参数值作为日。若日期大于某指定月的天数,则函数从指定月份的第一天开始往上累加。若day为0、-1与月份规则一致
    例如:DATE(2000,3,35)等于2000-04-04
    
    
    
    TODATE()函数可以将各种日期形式的参数转换为日期类型。
    它有三种参数的形式:
    1. 参数是一个日期型的参数,那么直接将这个参数返回。
    示例:TODATE(DATE(2007,12,12))返回2007年12月12日组成的日期。
    2. 参数是以从1970年1月1日0时0分0秒开始的毫秒数,返回对应的时间。
    示例:TODATE(1023542354746)返回2002年6月8日。
    3. 参数是日期格式的文本,那么返回这个文本对应的日期。
    示例:
    TODATE("2007/10/15")返回2007年10月5日组成的日期。
    TODATE("2007-6-8")返回2007年6月8日组成的日期。
    4. 有两个参数,第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式。
    示例:TODATE("1/15/07","MM/dd/yy")返回07年1月15日组成的日期。
    特别的,"yyyyMMdd"是用来解析形如“20081230”之类的日期格式的。比如TODATE("20110830","yyyyMMdd")返回11年08月30日组成的日期5有三个参数,第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式,第三个参数为解析日期的语言,如:zh(中文),en(英文)。
    示例:TODATE("星期一1/15/07","EEEMM/dd/yy","zh")返回07年1月15日组成的日期,使用“zh(中文)”才能够正常解析“星期一”这个字符串。注:如果EEE 和 MM/dd/yy 不一致, 以 MM/dd/yy 为主。 示例:TODATE("星期三1/15/07","EEEMM/dd/yy","zh")返回07年1月15日组成的日期,实际是星期一,而不是星期三。

     

    展开全文
  • select to_char(trunc(add_months(last_day(sysdate), -1) + 1), ‘yyyy-mm-dd’) “本月第一天”,to_char(last_day(sysdate), ‘yyyy-mm-dd’) “本月最后一天”–Oracle trunc()函数的用法/**************日期****...

    select to_char(trunc(add_months(last_day(sysdate), -1) + 1), ‘yyyy-mm-dd’) “本月第一天”,

    to_char(last_day(sysdate), ‘yyyy-mm-dd’) “本月最后一天”–Oracle trunc()函数的用法

    /**************日期********************/

    1.select trunc(sysdate) from dual  –2011-3-18  今天的日期为2011-3-18

    2.select trunc(sysdate, ‘mm’)   from   dual  –2011-3-1    返回当月第一天.

    3.select trunc(sysdate,’yy’) from dual  –2011-1-1       返回当年第一天

    4.select trunc(sysdate,’dd’) from dual  –2011-3-18    返回当前年月日

    5.select trunc(sysdate,’yyyy’) from dual  –2011-1-1   返回当年第一天

    6.select trunc(sysdate,’d’) from dual  –2011-3-13 (星期天)返回当前星期的第一天

    7.select trunc(sysdate, ‘hh’) from dual   –2011-3-18 14:00:00   当前时间为14:41

    8.select trunc(sysdate, ‘mi’) from dual  –2011-3-18 14:41:00   TRUNC()函数没有秒的精确

    /***************数字********************/

    /*

    TRUNC(number,num_digits)

    Number 需要截尾取整的数字。

    Num_digits 用于指定取整精度的数字。Num_digits 的默认值为0。

    TRUNC()函数截取时不进行四舍五入

    */

    9.select trunc(123.458) from dual –123

    10.select trunc(123.458,0) from dual –123

    11.select trunc(123.458,1) from dual –123.4

    12.select trunc(123.458,-1) from dual –120

    13.select trunc(123.458,-4) from dual –0

    14.select trunc(123.458,4) from dual  –123.458

    15.select trunc(123) from dual  –123

    16.select trunc(123,1) from dual –123

    17.select trunc(123,-1) from dual –120

    展开全文
  • 、Oracle的日期函数:Oracle从8i开始就提供了大量的日期函数,这些日期函数包括对日期进行加减、转换、截取等功能。下面是Oracle提供的日期函数一览表 FunctionUseADD_MONTHSAdds months to a dateLAST_DAYComputes...

    一、Oracle的日期函数:

    Oracle从8i开始就提供了大量的日期函数,这些日期函数包括对日期进行加减、转换、截取等功能。下面是Oracle提供的日期函数一览表 Function

    Use

    ADD_MONTHS

    Adds months to a date

    LAST_DAY

    Computes the last day of the month

    MONTHS_BETWEEN

    Determines the number of months between two dates

    NEW_TIME

    Translates a time to a new time zone

    NEXT_DAY

    Returns the date of the next specified weekday

    ROUND

    Rounds a date/time value to a specified element

    SYSDATE

    Returns the current date and time

    TO_CHAR

    Converts dates to strings

    展开全文
  • SQL Server 对日期的操作函数的使用 在编写sql的时候,会碰到对日期的处理,特别是日期区间对业务数据的限制。 如:用户数据的是一个固定月份 2020-03 这个时候需要匹配数据就是2020-03-01 ~ 2020...--当月第一天 selec
  • oracle 获取 当年第一天 当月第一天

    千次阅读 2021-05-02 08:28:35
    select trunc(sysdate,'YYYY'),add_months(trunc(sysdate,'YYYY'),12)-1 from dual t 当年select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天", to_char(last_day(sysdate), ...
  • select to_char(sysdate,'yyyy/mm')||'/01' from dual日期函數1、 日期和字符转换函数用法(to_date,to_char) 。2、 求某是星期几方法:a、select to_char(to_date('2004-12-27','yyyy-mm-dd'),'day') from dual;顯...
  • 今天在项目开发中遇到了一个需求,在编写某个功能时,需要使用到基于某个时间(如当前时间),去获取本月第一天或下个月的第一天的数据. 问题分析: 通过查询资料可以得知,要实现这个需求并不容易,在sql语句中就能很好的...
  • 两种方式获取当月第一天及最后一天 第一种: $firstDay = date('Y-m-01', strtotime($date)); $lastDay = date('Y-m-d', strtotime(date('Y-m-01', strtotime($date)). ' 1 month -1 day')); 第二种: $first...
  • 1.获取上个月第一天及最后一天. echo date('Y-m-01', strtotime('-1 month')); echo "<br/>"; echo date('Y-m-t', strtotime('-1 month')); echo "<br/>"; 上面的方法有些问题,根据bg5hfc回复做...
  • getFirstDayByMonths(year,month) { return new Date(year,month,1),getDay(); }
  • 一个计算某一天是当年或当月几周的函数,有实例,简单,一看就懂,拿来就用。本人原创。任何人都可以自由使用,但本人保留版权。
  • 1.获取上个月第一天及最后一天.echo date('Y-m-01', strtotime('-1 month'));echo "";echo date('Y-m-t', ...2.获取当月第一天及最后一天.$BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));echo $BeginDate;...
  • //1普通方式 $BeginDate=date('Y-m-01', strtotime(date("Y-m-d"))); echo $BeginDate; echo "<br/>... //2使用函数及数组来获取当月第一天及最后一天,比较实用 function getMonth($da...
  • shell获取当月第一天,最后一天

    千次阅读 2019-03-06 14:28:09
    #当月第一天 date -d"$(date -d"1 month" +"%Y%m01") -1 day" +"%Y%m%d" #当月最后一天 date +"%Y%m$(cal|sed 'N;${s/.* //;P;d};D')" #当月最后一天
  • 主要介绍了C#获取上个月第一天和最后一天日期的方法,是关于C#日期函数的简单应用,具有一定的实用价值,需要的朋友可以参考下
  • 以下函数为一些常用的最基础的时间函数,不包括DATEADD、DATEFORMAT等函数 常用时间函数 now(), current_timestamp(); -- 当前日期时间 current_date(); -- 当前日期 current_time(); -- 当前时间 date('yyyy-mm-dd ...
  • 使用函数及数组来获取当月第一天及最后一天,比较实用  function getthemonth($date)  {  $firstday = date('Y-m-01', strtotime($date));  $lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day...
  • var year=new Date().getFullYear() ; var month=new Date().getMonth()+1 ; var day = new Date(year,month,0); starResult.innerText =year + "-" + month + "-01"; endResult.innerText = year + '-' + month +....
  • 查询2020的数据: select * from table where year(column)='2020'; 查找月份为12的数据: ...year,month,dayofyear是mysql的函数,分别是取得年,月,和当前时间在本年是的3个函数 查询当月数据: select *
  • //获取前月的第一天 Calendar cal_1=Calendar.getInstance();//获取当前日期 cal_1.add(Calendar.MONTH, -1); cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天 firstDay = format....
  • 根据当前日期,获取当月第一天,最后一天,通过循环获取每个月的第一天,最后一天 注:项目需要通过日期,一个月一个月的去调用别的接口拉取数据,终于查找到一个合适的方法 $start_date = '2018-08-08'; $BeginDate...
  • --获取当月第一天 select last_day('2022-04-12'); -- 获取当月最后一天 select next_day('2022-04-12','MO'); --获取下周一 select date_add(next_day('2022-04-12','MO'),6); --获取下周日 select date_add...
  • 增量个月:date_format(CREATE_BY_TIME, ‘%y-%m-%d’) between DATE_SUB(CURDATE(), INTERVAL 1 MONTH) and CURDATE() 上月初:date_format(OPERATE_TIME, ‘%y-%m-%d’) between date_add(curdate()-day
  • SQL 中常用日期函数,一定可以帮帮你的
  • 以下getdate()为获取当天的日期,按照实际需求,可以替换成参数或实际的日期当月天数select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0)))当月第一天select dateadd(d,-day(getdate())+1,getdate()...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,969
精华内容 5,587
关键字:

当月第一天函数