sqlserver如何根据当前日期获得上月某一天的日期

sqlserver如何根据当前日期获得上月某一天的日期,第1张

试试select

dateadd

例如:向日期加上2天

select

dateadd(day,2,'2004-10-15')

--返回:2004-10-17

00:00:00000

dateadd函数说明:

DateAdd

(interval,number,date)

以interval指定的方式,加上number之后的日期

参数

interval的设定值如下:

写(Sql

Server)

(Access

ASP)

说明

Year

Yy

yyyy

1753

~

9999

Quarter

Qq

q

1

~

4

Month

Mm

m

月1

~

12

Day

of

year

Dy

y

一年的日数,一年中的第几日

1-366

Day

Dd

d

日,1-31

Weekday

Dw

w

一周的日数,一周中的第几日

1-7

Week

Wk

ww

周,一年中的第几周

0

~

51

Hour

Hh

h

时0

~

23

Minute

Mi

n

分钟0

~

59

Second

Ss

s

0

~

59

Millisecond

Ms

-

毫秒

0

~

999

oracle获得上个月的月份:

select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;

oracle获得下个月的月份:

select to_char(add_months(trunc(sysdate),1),'yyyymm') from dual;

oracle获得上个月的第一天日期:

select data_dt ,ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD'),'MM' ),-1)  from a_web_visit_origin;

oracle获得上个月的第一天日期(符合当地的日期格式):

select data_dt ,TO_CHAR (ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD'),'MM' ),-1),'YYYY-MM-DD')  from a_web_visit_origin;

oracle获得上个月当天日期:

select data_dt ,TO_CHAR (ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD') ),-1),'YYYY-MM-DD')  from a_web_visit_origin;

select data_dt ,ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD'),'MM' ),-1)  from a_web_visit_origin;

oracle获得上个月的第一天日期(符合当地的日期格式):

select data_dt ,TO_CHAR (ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD'),'MM' ),-1),'YYYY-MM-DD')  from a_web_visit_origin;

oracle获得上个月当天日期:

select data_dt ,TO_CHAR (ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD') ),-1),'YYYY-MM-DD')  from a_web_visit_origin;

扩展资料:

日期和字符转换函数用法(to_date,to_char):

日期转化为字符串:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;

获取时间的年:  select to_char(sysdate,'yyyy') as nowYear   from dual;

获取时间的月: select to_char(sysdate,'mm')    as nowMonth from dual;

获取时间的日:select to_char(sysdate,'dd')    as nowDay    from dual;

获取时间的时:select to_char(sysdate,'hh24') as nowHour   from dual;

获取时间的分:select to_char(sysdate,'mi')    as nowMinute from dual;

获取时间的秒:select to_char(sysdate,'ss')    as nowSecond from dual;

编写脚本getdatesh:

[plain] view plain copy

#! /bin/sh

nowdate=`date +%Y%m01` #本月第一天

startdate=`date -d"$nowdate last month" +%Y%m%d` #上个月第一天

enddate=`date -d"$nowdate last day" +%Y%m%d` #上个月最后一天

#遍历上个月的每一天

while (( $startdate <= $enddate ))

do

echo $startdate

startdate=`date -d "+1 day $startdate" +%Y%m%d`

上个月比较好写,减去当前日期,再减1天

# date -d "-1 days" -d "-`date +%d` days" +%m

09

------------------------------------------------------------

下个月就不好写咯

date里的1 month有问题

比如今天是10月31日

# date -d "1 month" +%m

12

变成12月了

# date +%m

10

获取当前月份

那么下个月只好写代码了:

now_month=`date +%m`

if [ $now_month -ne 12 ];then

echo nextmonth is `expr $now_month + 1`

else

echo nextmonth is 01

fi

package zhidao;

import javatextSimpleDateFormat;

import javautilCalendar;

public class GetPerDate {

public static void main(String[] args) {

// TODO Auto-generated method stub

String firstDay,lastDay;

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

//获取前月的第一天

Calendar cal_1=CalendargetInstance();//获取当前日期

cal_1add(CalendarMONTH, -1);

cal_1set(CalendarDAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天

firstDay = formatformat(cal_1getTime());

Systemoutprintln("-----1------firstDay:"+firstDay);

//获取前月的最后一天

Calendar cale = CalendargetInstance();

caleset(CalendarDAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天

lastDay = formatformat(calegetTime());

Systemoutprintln("-----2------lastDay:"+lastDay);

}

}

以上就是关于sqlserver如何根据当前日期获得上月某一天的日期全部的内容,包括:sqlserver如何根据当前日期获得上月某一天的日期、Oracle如何获得上个月的月份、请教各位大神,如何在脚本中获取上个月最后一天日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9473363.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存