文档库 最新最全的文档下载
当前位置:文档库 › PLSQL 日期时间类型函数及运算

PLSQL 日期时间类型函数及运算

PLSQL 日期时间类型函数及运算
PLSQL 日期时间类型函数及运算

PLSQL 日期时间类型函数及运算

内部存储格式

世纪、年、月、日、小时、分钟、秒

默认格式是:DD-MON-RR。

SYSDATE 返回当前的系统时间。

SELECT SYSDATE FROM DUAL;

对日期的数学运算

SELECT (SYSDATE-HIRE_DATE)/7 FROM TABLENAME WHERE ROWNUM;

数字列

ADD_MONTHS(date,x)函数,返回加上X月后的日期DATE的值。X可以是任意整数。如果结果的月份中所包含的日分量少于DATE的月份的日分量,则返回结果月份的最后一天。如果不小于,则结果与DATE的日分量相同。时间分量也相同。

CURRENT_DATE 以DATE类型返回会话时区当前的日期。这个函数同SYSDATE相似,除了SYSDATE不管当会话时区。

CURRENT_TIMESTAMP[(precision)] 以TIMESTAMP WITH TIMEZONE 类型返回会话时区当前的日期。如果指定precision,它指返回秒数的精度,缺省为6。DBTIMEZONE 返回数据库的时区。

LAST_DAY(日期)指定日期所在月份的最后一天的日期,这个函数可用来确定本月还有多少天。

LOCALTIMESTAMP[(precision)] 以TIMESTAMP类型返回会话时区的当前日期。如果指定precision,它指返回秒数的精度,缺省为6 。

MONTHS_BETWEEN(离当前比较近的日期date1,以前的日期) 两个日期之间相差的月数(以日作为最小单位来计算的)。返回是相差的月数。如果date1和date2的日分量相同,或者这两个日期都分别是所在月的最后一天,那么返回结果是个整数。否则,返回结果包含一个分数,以一个月31天计算。

NEW_TIME(d,zone1,zone2)函数,当时区zone1中的日期和时间是D的时候,返回时区zone2中的日期和时间。

返回类型为DATE。zone1和zone2是字符字符串,另外的时区可在ORACLE9I中

通过查询V$TIMEZONE_NAMES得到。

NEXT_DAY (日期,星期几)指定日期后将要遇到的后七天的某一天的日期。ROUND(日期,‘MONTH/YEAR')四舍五入得到新的日期。保留位置是月和年SESSIONTIMEZONE 返回当前会话的时区。返回类型是一个时区偏移或时区片名的字符字符串。如果指定格式,则与ALTER SESSION 语句中的格式相同。

SYS_EXTRACT_UTC(datetime) 从提供的DATETIME中以UTC(Coordinated Universal Time)返回时间。

DATETIME必须包含一个时区。

SYSTIMESTAMP 以TIMESTAMP WITH TIMEZONE 返回当前的日期和时间。当在分布式SQL语句中使用的时候,返回本地数据库的日期和时间。

TRUNC(日期,‘MONTH/YEAR')截取

TZ_OFFSET(timezone) 以字符字符串返回提供的timezone和UTC之间的偏移量。timezone可以被指定为时区名或'+/-HH:HI'格式表示的偏移量。也可使用

SESSIONTIMEZONE和DBTIMEZONE函数,返回格式为'+/-HH:HI'。字符字符串时区

AST 大西洋标准时

ADT 大西洋夏令时

BST 白令标准时

BDT 白令夏令时

CST 中央标准时

CDT 中央夏令时

EST 东部标准时

EDT 东部夏令时

GMT 格林威治平均时

HST 阿拉斯加夏威夷标准时

HDT 阿拉斯加夏威夷夏令时

MST Mountain标准时

MDT Mountain夏令时

NST 纽芬兰标准时

PST 太平洋标准时

PDT 太平洋夏令时

YST YuKon标准时

YDT YuKon夏令时

日期和日期时间算术

运算返回类型

Excel函数怎么计算已知出生日期计算员工年龄

Excel函数怎么计算已知出生日期计算员 工年龄 如果老板给你一份关于所有员工的基本资料,里面有他们的出生日期,但是没有年龄,想让你计算出每一位员工的实际年龄,你会怎么做呢?借助Excel函数,可以很好的做到。以下是为您带来的关于Excel函数计算已知出生日期计算员工年龄,希望对您有所帮助。 Excel函数计算已知出生日期计算员工年龄 1、选中C2单元格,切换到“公式”选项卡,在“函数库”组中找

到日期和时间函数TODAY。 2、此时会弹出“函数参数”对话框,上面有对TODAY函数的介绍,说它是返回日期格式的当前日期,且不需要参数,直接确定即可。 3、现在C2单元格中会返回TODAY函数的值,我们双击C2单元格就可以进入编辑状态,然后在现有的公式后加上“-B2”即可。这是

我们一般理解的求年龄的方法,用现在的日期减去出生日期。 4、但是你会发现Excel算出来的结果是一个日期,这是比较容易理解的,因为一个日期减去另外一个日期嘛,结果当然也就是一个日期了,没关系,我们把这个日期换算成一个年份值就好了。Excel中正好有对应的函数,它的名字叫做YEAR。那现在只好委屈一下,让我们之前的那个公式成为YEAR函数的参数咯。

YEAR函数。

6、在弹出的YEAR函数参数对话框中,将之前剪切的内容粘贴到它的参数对应的文本框内,并确定。 7、当我们把日期值换算成一个年份值之后,你发现C2单元格显示的还是一个日期格式的值,那现在我们就要调整它的数字格式了。选

中C2单元格,将其数字格式设置为“常规”。 8、好了,现在C2单元格中显示的是一个数值了,但还是不对,用脑子计算一下,你发现它多了1900年,这是因为Excel函数使用了1900年时间系统,YEAR函数返回的是一个1900至9999之间的值,所以我们自己在现有的公式后减去多出来的1900就好了。

CC++中对日期和时间操作所用到的数据结构和函数

本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法. 通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个: Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。 Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。 epoch:时间点。时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。 clock tick:时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位。 我们可以使用ANSI标准库中的time.h头文件。这个头文件中定义的时间和日期所使用的方法,无论是在结构定义,还是命名,都具有明显的C语言风格。下面,我将说明在C/C++中怎样使用日期的时间功能。 2.计时 C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下: clock_t clock( void ); 这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义: #ifndef _CLOCK_T_DEFINED

关于日期的各种函数

//刚开始写的,有些函数名很糟糕,自己看着改改,我是不想动了#include int lea(int n)//判断是否为闰年,是返回1,不是返回0 { int leap; if(n%4==0) { if(n%100==0) { if(n%400==0) leap=1; else leap=0; } else leap=1; } else leap=0; return leap; } int mouth (inty,int m)//判断某年某月的天数并输出 { int i; int a1[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; i=lea(y); a1[2]=i?29:28; printf("%d年的第%d月是%d天\n",y,m,a1[m]); return 0; } int days(intfrom,int to)//计算从某年到某年共多少天 { inti,sun=0; for(i=from;i

return i; } void aaa(inty,int n)//判断某年的第N天是是当年的几月几日{ int i=0; int a1[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; i=lea(y); a1[2]=i?29:28; i=1; while(n>a1[2]) n-=a1[i++]; printf("这是%d年的第%d月的第%d天\n",y,i,n); } intbbb(inty,intm,int n)//计算某年某月某日是当年的第几天{ int i=0; int a1[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; i=lea(y); a1[2]=i?29:28; for(i=1;i

mysql 中 时间和日期函数

mysql 中时间和日期函数 一、MySQL 获得当前日期时间函数 1.1获得当前日期+时间(date + time)函数:now() mysql>select now(); +---------------------+ | now() | +---------------------+ |2008-08-0822:20:46| +---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_timestamp ,localtime() ,localtime ,localtimestamp -- (v4.0.6) ,localtimestamp() -- (v4.0.6) 这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。 1.2获得当前日期+时间(date + time)函数:sysdate() sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了: mysql>select now(), sleep(3), now(); +---------------------+----------+---------------------+ | now() | sleep(3) | now() | +---------------------+----------+---------------------+ |2008-08-0822:28:21|0|2008-08-0822:28:21| +---------------------+----------+---------------------+ mysql>select sysdate(), sleep(3), sysdate(); +---------------------+----------+---------------------+

Excel如何根据身份证号码自动计算年龄

Excel如何根据身份证号码自动计算年龄方法1 1.打开要在excel中编辑的表格 2.如图所示,在身份证号后面的空格即年份一列第一格输入公式=MID(A2,7,4),输入完成后按下enter键,A2指身份证号的单元格,数字7为数字开始位置,4为字符个数 3.按下enter键后,如图所示年份一栏已显示出出生年份 4.如图所示,选中已显示年份的一格,鼠标点击绿色框右下角的小方框并下拉至身份证号的最后一栏 5.如图所示,每个身份证号对应的年份都显示出来了 6.如图所示再在年龄一列第一格输入公式2018-MID(A2,7,4),按下enter键 7.即可看到年龄已被计算出来为21岁,如图所示鼠标点击绿色框右下角的小方框并下拉至身份证号的最后一栏 8.如图所示,用这种“自动填充”功能,就能让同类型单元格有同样的公式计算结果 方法2 1.打开要在excel中编辑的表格,并选中年龄那一列的第一格 2.点击公式 3.再点击插入函数 4.在弹出来的对话框中在选择函数那一栏点击全部 5.下拉右侧的滚动条找到MID函数点击它

6.点击右下角的确定 7.在弹出来的对话框中点击第一格 8.然后点击Excel文档中的A2单元格 9.在第二格中输入数字7,表示数字开始位置 10.在第三格中输入数字4,表示字符个数为四个 11.最后单击确定 12.即可看到该身份证号的年份已经算出来了 13.然后在该公示前输入2018-即公式2018-MID(A2,7,4)按下enter键 14.即可看到年龄计算出来为21岁,下拉该单元格右下角的小黑方使下面的单元格拥有同样的计算格式 15.最后即可看到所有的年龄就被计算出来了

C语言中的时间处理函数

C语言中的时间处理函数收藏 来源:https://www.wendangku.net/doc/fb7061440.html,/8892167_d.html C语言时间函数 [原创 2007-04-16 23:30:50] C语言的标准库函数包括一系列日期和时间处理函数,它们都在头文件中说明。下面列出了这些函数。在头文件中定 义了三种类型:time_t,struct tm和clock_t。在头文件 中说明的C语言时间函数 time_t time(time_t *timer); double difftime(time_t time1,time_t time2); struct tm *gmtime(const time_t *timer); struct tm *localtime(const time_t *timer); char *asctime(const struct tm *timeptr); char *ctime(const time_t *timer); size_t strftime(char *s,size_t maxsize,const char *format,const struct tm *timeptr); time_t mktime(struct tm *timeptr); clock_t clock(void); 下面是我从网上收集到的时间函数集 asctime(将时间和日 期以字符串格式表示)相关函数 time,ctime,gmtime,localtime 表头文件#i nclude 定义函数 char * asctime(const struct tm * timeptr); 函数说明 asctime()将参数timeptr所指的tm结构中的信息转换成真 实世界所使用的时间日期表示方法,然后将结果以字符串形 态返回。此函数已经由时区转换成当地时间,字符串格式为:"Wed Jun 30 21:49:08 1993\n" 返回值若再调用相关的 时间日期函数,此字符串可能会被破坏。此函数与ctime不 同处在于传入的参数是不同的结构。附加说明返回一字符 串表示目前当地的时间日期。范例#include

excel使用日期和时间函数公式

excel使用日期和时间函数公式 excel使用日期和时间函数公式excel如何显示当前日期函数公式 显示当前年份函数:【=year(now())】 显示当前月份函数:【=month(now())】 显示当前日期函数:【=day((now()))】 显示当前星期函数:【=text(now(),"aaaa")】 显示当前准确时间:【=text(now(),"hh:mm:ss")】 显示当前年月日:【=today()】 显示当前年月日和时间:【=now()】 使用方法:直接在某单元格输入以上函数公式即可获得结果。 excel如何通过日期判断星期几 通过日期显示星期几:【=weekday(a2,2)】 通过日期显示中文带星期:【=text(a2,"aaaa")】 通过日期计算中文星期:【=text(a4,"aaa")】 通过日期计算英文星期简写:【=text(a5,"ddd")】 通过日期计算英文星期:【=text(a5,"dddd")】 使用方法:指定输入日期的单元格,输入以上函数公式即可获取星期。 excel如何求月份天数函数 求某日期的月份天数:

【=day(date(year(a2),month(a2)+1,0))】使用方法:需要指定包含日期的单元格。 直接求当前月份天数:【=day(eomonth(now(),0))】使用方法:直接在某单元格输入以上公式即可获取天数。 求当前月份天数减去周六和周日:【=sumproduct(--(mod(row(indirect(date(year(now()),month (now()),1)&":"&date(year(now()),month(now())+1,0))),7)>1 ))】使用方法:直接在某单元格输入以上公式即可获取天数。 excel快捷键快速获取日期时间 当然,在有些情况下,我们可以直接通过excel快捷键来获取当前的日期和时间。 获取当前年月日快捷键:【ctrl+;】 获取当前时间快捷键:【ctrl+shift+;】 获取年月日和时间:先在单元格使用【ctrl+;】,然后空格在使用快捷键【ctrl+shift+;】

C#中的日期时间函数

DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21:25 Label2.Text = dt.ToFileTime().ToString();//127756416859912816 Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816 Label4.Text = dt.ToLocalTime().ToString();//2005-11-5 21:21:25 Label5.Text = dt.ToLongDateString().ToString();//2005年11月5日Label6.Text = dt.ToLongTimeString().ToString();//13:21:25 Label7.Text = dt.ToOADate().ToString();//38661.5565508218 Label8.Text = dt.ToShortDateString().ToString();//2005-11-5 Label9.Text = dt.ToShortTimeString().ToString();//13:21 Label10.Text = dt.ToUniversalTime().ToString();//2005-11-5 5:21:25 ?2005-11-5 13:30:28.4412864 Label1.Text = dt.Year.ToString();//2005 Label2.Text = dt.Date.ToString();//2005-11-5 0:00:00 Label3.Text = dt.DayOfWeek.ToString();//Saturday Label4.Text = dt.DayOfYear.ToString();//309 Label5.Text = dt.Hour.ToString();//13 Label6.Text = https://www.wendangku.net/doc/fb7061440.html,lisecond.ToString();//441 Label7.Text = dt.Minute.ToString();//30 Label8.Text = dt.Month.ToString();//11 Label9.Text = dt.Second.ToString();//28 Label10.Text = dt.Ticks.ToString();//632667942284412864 Label11.Text = dt.TimeOfDay.ToString();//13:30:28.4412864 Label1.Text = dt.ToString();//2005-11-5 13:47:04 Label2.Text = dt.AddYears(1).ToString();//2006-11-5 13:47:04 Label3.Text = dt.AddDays(1.1).ToString();//2005-11-6 16:11:04 Label4.Text = dt.AddHours(1.1).ToString();//2005-11-5 14:53:04 Label5.Text = dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04 Label6.Text = dt.AddMonths(1).ToString();//2005-12-5 13:47:04 Label7.Text = dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05

用Excel函数计算年龄几法

用Excel函数计算年龄几法 在Excel中利用系统时间和出生年月计算年龄是人事管理、工资统计中经常性遇到的工作,笔者由于工作关系对此有些研究,现将有关计算方法介绍如下,供读者朋友们参考: 一、利用DAYS360、CEILING和TRUNC函数 1.函数简介 ①DAYS360函数 它能按每年360天(每月30天)计算出两个日期间的天数,作为计算工龄的工具非常方便。它的语法为: DAYS360(Start_date,end_date,method) 其中,Start_date是计算时间段的起始日期,end_date是计算时间段的结束日期,method用来指定计算方法的逻辑值(取FALSE或忽略使用美国方法,取TRUE则使用欧洲方法)。 另外,不同地方计算工龄的规则不尽相同。有的按“虚工龄”计算,如1998年6月1日至2000年12月31日工龄为3年;而有的则按“实工龄”计算,1998年6月1日至2000年12月31日工龄为2年;对此可使用CEILING函数或TRUNC函数处理。 ②CEILING函数 它的语法为: CEILING(number,significance) 其中number为待计算的数值,significance确定取整计算的倍数;该函数可将number沿着绝对值增大的方向,计算出一个最接近(或最小倍数significance)的整数。 ③TRUNC函数 它的作用是将数字的指定部分截去,计算出一个最接近的整数或小数,语法为: TRUNC(number,num_digits) 其中number为待计算的数值,num_digits用于指定小数部分的截取精度,取0时不保留小数、取1时保留一位小数(依次类推)。 2.计算公式 ①“虚工龄” 根据计算要求和有关函数的特点,计算“虚工龄”的公式为:“=CEILING((DAYS360(A1,B1))/360,1)”。公式中的A1和B1分别存放工龄的起止日期,“DAYS360(A1,B1)”计算两个日期间的天数,(DAYS360(A1,B1))/360则按一年360天计算出工龄。由于工龄一般以年为单位,故用CEILING函数将上面的计算结果(沿绝对值增大的方向)取整,从而得出“虚工龄”。 ②“实工龄” 计算“实工龄”的公式为:“=TRUNC((DAYS360(A1,B1))/360,0)”,公式中计算工龄天数的方法与上面的相同。TRUNC函数将(DAYS360(A1,B1))/360的计算结果截去小数部分,从而得出“实工龄”。如果计算结果需要保留一位小数,只须将公式修改为“=TRUNC((DAYS360(A1,B1))/360,1)”即可。 二、YEAR和RIGHT函数 1.函数简介 ①YEAR函数 它可以计算出日期序列数(如两个日期相减的结果)所对应的年份数,其语法为:YEAR(Serial_ number),其中Serial_ number为待计算的日期序列数,既可以是一个具体的数值,也可以是一个表达式。

用c++编写计算日期的函数

14.1 分解与抽象 人类解决复杂问题采用的主要策略是“分而治之”,也就是对问题进行分解,然后分别解决各个子问题。著名的计算机科学家Parnas认为,巧妙的分解系统可以有效地系统的状态空间,降低软件系统的复杂性所带来的影响。对于复杂的软件系统,可以逐个将它分解为越来越小的组成部分,直至不能分解为止。这样在小的分解层次上,人就很容易理解并实现了。当所有小的问题解决完毕,整个大的系统也就解决完毕了。 在分解过程中会分解出很多类似的小问题,他们的解决方式是一样的,因而可以把这些小问题,抽象出来,只需要给出一个实现即可,凡是需要用到该问题时直接使用即可。 案例日期运算 给定日期由年、月、日(三个整数,年的取值在1970-2050之间)组成,完成以下功能: (1)判断给定日期的合法性; (2)计算两个日期相差的天数; (3)计算一个日期加上一个整数后对应的日期; (4)计算一个日期减去一个整数后对应的日期; (5)计算一个日期是星期几。 针对这个问题,很自然想到本例分解为5个模块,如图14.1所示。 图14.1日期计算功能分解图 仔细分析每一个模块的功能的具体流程: 1. 判断给定日期的合法性: 首先判断给定年份是否位于1970到2050之间。然后判断给定月份是否在1到12之间。最后判定日的合法性。判定日的合法性与月份有关,还涉及到闰年问题。当月份为1、3、5、7、8、10、12时,日的有效范围为1到31;当月份为4、6、9、11时,日的有效范围为1到30;当月份为2时,若年为闰年,日的有效范围为1到29;当月份为2时,若年不为闰年,日的有效范围为1到28。

图14.2日期合法性判定盒图 判断日期合法性要要用到判断年份是否为闰年,在图14.2中并未给出实现方法,在图14.3中给出。 图14.3闰年判定盒图 2. 计算两个日期相差的天数 计算日期A (yearA 、monthA 、dayA )和日期B (yearB 、monthB 、dayB )相差天数,假定A 小于B 并且A 和B 不在同一年份,很自然想到把天数分成3段: 2.1 A 日期到A 所在年份12月31日的天数; 2.2 A 之后到B 之前的整年的天数(A 、B 相邻年份这部分没有); 2.3 B 日期所在年份1月1日到B 日期的天数。 A 日期 A 日期12月31日 B 日期 B 日期1月1日 整年部分 整年部分 图14.4日期差分段计算图 若A 小于B 并且A 和B 在同一年份,直接在年内计算。 2.1和2.3都是计算年内的一段时间,并且涉及到闰年问题。2.2计算整年比较容易,但

Oracel_常用日期型函数

常用日期型函数 1。Sysdate 当前日期和时间 SQL> Select sysdate from dual; SYSDA TE ---------- 21-6月-05 2。Last_day 本月最后一天 SQL> Select last_day(sysdate) from dual; LAST_DAY(S ---------- 30-6月-05 3。Add_months(d,n) 当前日期d后推n个月 用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_months) SQL> Select add_months(sysdate,2) from dual; ADD_MONTHS ---------- 21-8月-05 4。Months_between(f,s) 日期f和s间相差月数 SQL> select months_between(sysdate,to_date('2005-11-12','yyyy-mm-dd'))from dual; MONTHS_BETWEEN(SYSDA TE,TO_DA TE('2005-11-12','YYYY-MM-DD')) ---------------------------------------------------------- -4.6966741 5。NEXT_DAY(d, day_of_week) 返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。参数"day_of_week"必须为该星期 中的某一天。 SQL> SELECT next_day(to_date('20050620','YYYYMMDD'),1) FROM dual; NEXT_DAY(T ---------- 26-6月-05 6。current_date()返回当前会话时区中的当前日期

日期处理函数

select @bq=cast(year(getdate()) as varchar(4))+'年'+right('0'+cast(month(getdate()) as varchar(2)),2)+'月' select round(convert(money,111325,20)/6,2) select CONVERT(char(100),getdate(),120) convert(char(10),租赁_认租合同.合同起始日期,121) 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DA TEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DA TEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为一周的第一天来建立,也就是第一天设置为7。假如你的第一天设置不一样,你可能需要调整这些例子,使它和不同的第一天设置相符合。你可以通过@@DATEFIRST 函数来检查第一天设置。 为了理解这些例子,我们先复习一下DATEDIFF和DA TEADD函数。DA TEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。DA TEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期。要了解更多的DATEDIFF和DATEADD函数以及时间间隔可以阅读微软联机帮助。 使用DATEDIFF和DATEADD函数来计算日期,和本来从当前日期转换到你需要的日期的考虑方法有点不同。你必须从时间间隔这个方面来考虑。比如,从当前日期到你要得到的日期之间有多少时间间隔,或者,从今天到某一天(比如1900-1-1)之间有多少时间间隔,等等。理解怎样着眼于时间间隔有助于你轻松的理解我的不同的日期计算例子。 一个月的第一天 第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DA TEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。 这是计算一个月第一天的SQL 脚本: SELECT DATEADD(mm, DA TEDIFF(mm,0,getdate()), 0) 我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这

日期函数使用大全

//今天 DateTime.Now.Date.ToString(); //昨天 DateTime.Now.AddDays(-1).ToString(); //明天 DateTime.Now.AddDays(1).ToString(); //本周第1天及最后1天 (要注意的是这里的每一周是从周日始至周六止) DateTime.Today.AddDays (-(int)DateTime.Today.DayOfWeek).ToString(); DateTime.Today.AddDays (6 -(int)DateTime.Today.DayOfWeek).ToString(); //上周, 一周是7天,上周就是本周再减去7天 DateTime.Today.AddDays (-(int)DateTime.Today.DayOfWeek - 7).ToString(); DateTime.Today.AddDays (6 -(int)DateTime.Today.DayOfWeek - 7).ToString(); //下周 DateTime.Today.AddDays (-(int)DateTime.Today.DayOfWeek + 7).ToString(); DateTime.Today.AddDays (6 -(int)DateTime.Today.DayOfWeek + 7).ToString(); 巧用C#裡ToString的字符格式化 //本月第1天及最后1天 DateTime.Now.ToString("yyyy-MM-01"); DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).To String(); //上个月第1天及最后1天 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToString(); DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToString(); //下个月第1天及最后1天 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToString(); DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).To String(); //今年第1天 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToString(); //今年最后1天 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToS tring(); //去年第1天及最后1天 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToString(); DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToString();

Excel函数应用日期时间函数

Excel函数应用教程:日期时间函数 1.DATE 用途:返回代表特定日期的序列号. 语法:DATE(year,month,day) 参数:year为一到四位,根据使用的日期系统解释该参数。默认情况下,Excel for Windows使用1900日期系统,而Excel forMacintosh使用1904日期系统。Month代表每年中月份的数字。如果所输入的月份大于12,将从指定年份的一月份执行加法运算。Day代表在该月份中第几天的数字。如果 day 大于该月份的最大天数时,将从指定月份的第一天开始往上累加。 注意:Excel按顺序的序列号保存日期,这样就可以对其进行计算。如果工作簿使用的是1900日期系统,则Excel会将1900年1月1日保存为序列号1。同理,会将1998年1月1日保存为序列号35796,因为该日期距离1900年1月1日为35795天。 实例:如果采用1900日期系统(Excel默认),则公式“=DATE(2001,1,1)”返回36892。 2.DATEVaLUE 用途:返回date_text所表示的日期的序列号。该函数的主要用途是将文字表示的日期转换成一个序列号。 语法:DATEVaLUE(date_text) 参数:Date_text是用Excel日期格式表示日期的文本。在使用1900日期系统 中,date_text必须是1900年1月1日到9999年12月31日之间的一个日期;而在1904日期系统中,date_text必须是1904年1月1日到9999年12月31日之间的一个日期。如果date_text超出上述范围,则函数DATEVaLUE返回错误值#value!。 如果省略参数date_text中的年代,则函数DATEVaLUE使用电脑系统内部时钟的当前年代,且date_text中的时间信息将被忽略。 实例:公式“=DATEVaLUE(”2001/3/5")”返回36955,DATEVaLUE(”2-26")返回36948. 3.DAY 用途:返回用序列号(整数1到31)表示的某日期的天数,用整数 1 到31 表示。 语法:DAY(serial_number)

EXCEL日期与时间函数大全

1.DATE 用途:返回代表特定日期的序列号。 语法:DATE(year,month,day) 参数:year为一到四位,根据使用的日期系统解释该参数。默认情况下,Excel for Windows使用1900日期系统,而Excel for Macintosh使用1904日期系统。Month代表每年中月份的数字。如果所输入的月份大于12,将从指定年份的一月份执行加法运算。Day 代表在该月份中第几天的数字。如果day 大于该月份的最大天数时,将从指定月份的第一天开始往上累加。 注意:Excel按顺序的序列号保存日期,这样就可以对其进行计算。如果工作簿使用的是1900日期系统,则Excel会将1900年1月1日保存为序列号1。同理,会将1998年1月1日保存为序列号35796,因为该日期距离1900年1月1日为35795天。 实例:如果采用1900日期系统(Excel默认),则公式“=DATE(2001,1,1)”返回36892。 2.DATEVaLUE 用途:返回date_text所表示的日期的序列号。该函数的主要用途是将文字表示的日期转换成一个序列号。 语法:DATEVaLUE(date_text) 参数:Date_text是用Excel日期格式表示日期的文本。在使用1900日期系统中,date_text必须是1900年1月1日到9999年12月31日之间的一个日期;而在1904日期系统中,date_text必须是1904年1月1日到9999年12月31日之间的一个日期。如果date_text超出上述范围,则函数DATEVaLUE返回错误值#value!。 如果省略参数date_text中的年代,则函数DATEVaLUE使用电脑系统内部时钟的当前年代,且date_text中的时间信息将被忽略。 实例:公式“=DATEVaLUE("2001/3/5")”返回36955,DATEVaLUE("2-26")返回36948。 3.DAY 用途:返回用序列号(整数1到31)表示的某日期的天数,用整数1 到31 表示。 语法:DAY(serial_number) 参数:Serial_number是要查找的天数日期,它有多种输入方式:带引号的文本串(如"1998/01/30")、序列号(如1900日期系统的35825表示的1998年1月30日),以及其他公式或函数的结果(如DATEVaLUE("1998/1/30"))。 实例:公式“=DAY("2001/1/27")”返回27,=DAY(35825)返回30, =DAY(DATEVaLUE("2001/1/25"))返回25。 4.DAYS360 用途:按照一年360天的算法(每个月30天,一年共计12 个月),返回两日期间相差的天数。 语法:DAYS360(start_date,end_date,method)

Excel中最精确的计算年龄的公式

Excel中最精确的计算年龄的公式( 网上搜到的共式大概有这么几种: 1、计算出生日期到某一指定日期(一般选用某年的最后一天入2006年12月31日)的的天数,然后除以360 ,得到一个数值,然后用 int()函数取整,得出需要的年龄。一般使用的公式如下: =IF(C12="","",INT(DAYS360(C12,"2006-12-31")/360)) 聪明一点的人知道使用这个公式, =IF(C12="","",INT(DAYS360(C12,TODAY())/360)) 这个方法,这个公式的弊端在于,一、将每个月默认为30天去计算两个日期之间的天数,二、将每年默认为360天去计算年龄。这种方法显然不精确。 2、年份直接相减 计算周岁 =YEAR(NOW())-YEAR(C12) 计算虚岁 =YEAR(NOW())-YEAR(C12)+1 这种算法的精确程度显而易见,粗略估算还算可以。 3、使用DATEDIF函数 这种方法与第一种方法采用了相同的思路,但是其的精确程度显然比第一种方法要高,这取决于DATEDIF函数本身的精确性。 =IF(C12="","",INT(DATEDIF(C12,"1983-3-20","D")/365)) 或者, =IF(C12="","",INT(DATEDIF(C12,now(),"D")/365)) 但是这种方法强行将一年固定为365天,我们知道通常情况每个四年就有一年是366天所以这种算法也不是很精确。 通过认真分析,我觉得只有结合我们计算年龄的实际方法,才能编制出准确无误的公式。首先分析人们计算年龄的方法,例如,笔者系1983年3月20日生人,如果要在2007年3月23日这天计算他的年龄,通常采用这样的方法。首先,人们会用2007减去1983得出的年龄为24岁,然后再看看他“满没满”24岁,就是看看出生的月份和日期比今天早还是晚,如果出生日期晚于今天则表示没有满,那么他的年龄就应该是2007-1983-1=23岁。如果出生日期早于今天或者就是今天,就说明他已经满了24岁或者正好满24岁,则他的年龄就是 2007-1983=24岁。分析清楚了计算年龄的过程我们再根据这个过程编写公式就很容易了。 综上,我编写了如下公式,在实际应用中将公式中所有的C12替换为,你的所使用的出生日期所在的表格行号列号组合即可。如(A1,B2等等) =IF(MONTH(NOW())MONTH(C12),YEAR(NOW())-YEAR(C12),IF(DAY(NOW())>=DAY(C12),YEAR(N OW())-YEAR(C12),YEAR(NOW())-YEAR(C12)-1))) 公式说明

在脚本中增加日期和时间函数

在脚本中增加日期和时间函数 VBScript有许多函数,使你可以得到各种格式的日期和时间。你已经用过了这些函数中的一个。你可以用函数NOW返回当前的日期和时间: At the tone,the time will bi: <%=NOW%> 你应该注意,返回的日期和时间是你的Web服务器的系统时钟的日期和时间。如果身处纽约的某个人在看你的网页,他看到的日期和时间与她当地的日期和时间也许是不一至的。 函数NOW同时返回日期和时间。如果你只想返回当前日期,你可以使用函数DATE。如果你只想返回当前时间,你可以使用函数TIME。例如: The date is :<%=DATE%> The time is :<%=TIME%> 操作日期 使用函数MONTH(),DAY(),WEEKDAY(),和YEAR(),你可以把一个日期分割成更小的部分。所有这些函数都以一个日期表达式作为参数,并返回一个数字。这里有一个如何使用这些函数的例子: The Month is :<%=MONTH(DATE)%>
The Day is : <%=DAY(DATE)%>
The weekday is :<%=WEEKDAY(DATE)%>
The year is :<%=YEAR(DATE)%> 假设当前日期是1997年8月9日,星期三。如果你把上面的例子包含在一个ASP网页中,在浏览器中将显示如下的文字: The Month is : 7 The Day is : 9 The weekday is : 4 The year is : 1997 注意函数weekday()假定一个星期的第一天是星期日。如果你想把星期一作为一周的第一天,你可以使用如下的语句: The weekday is :<%=weekday(DATE,vbWednesday)%>

相关文档
相关文档 最新文档