Access日期和时间函数.docx
《Access日期和时间函数.docx》由会员分享,可在线阅读,更多相关《Access日期和时间函数.docx(35页珍藏版)》请在冰豆网上搜索。
![Access日期和时间函数.docx](https://file1.bdocx.com/fileroot1/2023-1/5/b3248b2c-03b8-4567-883b-7252227fae02/b3248b2c-03b8-4567-883b-7252227fae021.gif)
Access日期和时间函数
1.Cdate(日期表达式)
将日期表达式转换成日期类型的数据。
日期表达式是任何可以解释成日期的表达式,包含日期文字,可以看作日期的字符串以及从函数返回的日期。
比如:
myDate=CDate("99-5-20"),这样的日期表达式必须加双引号,否则结果不可预料。
CDate依据系统上的区域设置来决定日期的格式。
如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。
2.Now()
返回当前计算机系统设置的日期和时间。
3.Year(日期表达式)
返回表示年份的整数。
比如:
Year("00-6-15")=2000
4.Month(日期表达式)
返回1到12之间的整数,表示一年中的某月。
比如:
Month("00-6-15")=6
5.DateAdd(interval,number,date)
DateAdd函数语法中有下列命名参数:
部分描述
interval必要。
字符串表达式,是所要加上去的时间间隔。
number必要。
数值表达式,是要加上的时间间隔的数目。
其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
date必要。
Variant(Date)或表示日期的文字,这一日期还加上了时间间隔。
设置interval参数具有以下设定值:
设置描述
yyyy年
q季
m月
y一年的日数
d日
w一周的日数
ww周
h时
n分钟
s秒
说明
可以使用DateAdd函数对日期加上或减去指定的时间间隔。
例如,可以用DateAdd来计算距今天为三十天的日期;或者计算距现在为45分钟的时间。
为了对date加上“日”,可以使用“一年的日数”(“y”),“日”(”d”)或“一周的日数”(”w”)。
DateAdd函数将不返回有效日期。
在以下实例中将1月31日加上一个月:
DateAdd(m,1,31-Jan-95)
上例中,DateAdd返回1995年2月28日,而不是1995年2月31日。
如果date是1996年1月31日,则由于1996年是闰年,返回值是1996年2月29日。
如果计算的日期超前100年(减去的年度超过date中的年份),就会导致错误发生。
如果number不是一个Long值,则在计算时取最接近的整数值来计算。
注意DateAdd返回值的格式由ControlPanel设置决定,而不是由传递到date参数的格式决定。
事例:
DateAdd("d",10,"2000-6-18")
结果是:
2000-06-28
DateAdd("m",-1,"2000-6-18")
结果是:
2000-05-18
6、DateDiff函数
返回Variant(Long)的值,表示两个指定日期间的时间间隔数目。
语法DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])
DateDiff函数语法中有下列命名参数:
部分描述
interval必要。
字符串表达式,表示用来计算date1和date2的时间差的时间间隔
Date1□date2必要;Variant(Date)。
计算中要用到的两个日期。
Firstdayofweek可选。
指定一个星期的第一天的常数。
如果未予指定,则以星期日为第一天。
firstweekofyear可选。
指定一年的第一周的常数。
如果未予指定,则以包含1月1日的星期为第一周。
interval参数的设定值同DateAdd函数,请参考上面的例子。
例:
DateDiff("d",#2004-01-06#,#2004-01-07#)1
7、DatePart函数
返回一个包含已知日期的指定时间部分的Variant(Integer)。
语法DatePart(interval,date[,firstdayofweek[,firstweekofyear]])
DatePart函数语法中有下列命名参数:
部分描述
interval必要。
字符串表达式,是要返回的时间间隔。
date必要。
要计算的Variant(Date)值。
Firstdayofweek可选。
指定一个星期的第一天的常数。
如果未予指定,则以星期日为第一天。
firstweekofyear可选。
指定一年第一周的常数。
如果未予指定,则以包含1月1日的星期为第一周。
设置
interval参数的设定值同DateAdd()
DatePart函数示例本示例先取得一个日期,然后使用DatePart函数显示该日期是发生在该年的哪一季。
DimTheDateAsDate'声明变量。
DimMsg
T
12、Time函数
返回一个指明当前系统时间的Variant(Date)。
语法
Time
示例
使用Time函数返回系统当前的时间。
DimMyTimeMyTime=Time'返回系统当前的时间
说明
为了设置系统时间,请使用Time语句。
设置系统时间。
语法
Time=time
必要的time参数,可以是任何能够表示时刻的数值表达式、字符串表达式或它们的组合。
说明
如果time是一字符串,则Time会试着根据系统指定的时间,利用时间分隔符将其转换成一个时间。
如果无法转换成一个有效的时间,则会导致错误发生。
13、FormatDateTime函数
描述
返回一个日期或时间格式的表达式。
语法
FormatDateTime(Date[,NamedFormat])
FormatDateTime函数语法有如下几部分:
部分描述
Date必需的。
要被格式化的日期表达式
NamedFormat可选的。
数字值,表示日期/时间所使用的格式。
如果忽略该值,则使用vbGeneralDate。
设置值
NamedFormat参数的设置值如下:
常数值描述
vbGeneralDate0显示日期和/或时间。
如果有日期部分,则用短日期格式显示。
如果有时间部分,则用长时间格式显示。
如果都有,两部分都显示。
VbLongDate1用计算机区域设置值中指定的长日期格式显示日期。
VbShortDate2用计算机区域设置值中指定的短日期格式显示日期。
18、用户自定义日期/时间格式(Format函数)
下面标识一些可用来创建用户自定义日期/时间格式的字符:
字符说明
(:
)时间分隔符。
在一些区域,可能用其他符号来当时间分隔符。
格式化时间值时,时间分隔符可以分隔时、分、秒。
时间分隔符的真正字符在格式输出时取决于系统的设置。
(/)日期分隔符。
在一些区域,可能用其他符号来当日期分隔符。
格式化日期数值时,日期分隔符可以分隔年、月、日。
日期分隔符的真正字符在格式输出时取决于系统设置。
c以ddddd来显示日期并且以ttttt来显示时间。
如果想显示的数值无小数部分,则只显示日期部分,如果想显示的数值无整数部分,则只显示时间部分。
d以没有前导零的数字来显示日(1–31)。
dd以有前导零的数字来显示日(01–31)。
ddd以简写来表示日(Sun–Sat)
dddd以全称来表示日(Sunday–Saturday)
ddddd以完整日期表示法显示(包括年、月、日),日期的显示要依系统的短日期格式设置而定。
dddddd以完整日期表示法显示日期系列数(包括年、月、日),日期的显示要依系统识别的长日期格式而定。
缺省的长日期格式为mmmm
dd,yyyy。
aaaa与dddd一样,它只是该字符串的本地化版本。
w将一周中的日期以数值表示(1表星期日~7表星期六)。
ww将一年中的星期以数值表示(1–54)。
m以没有前导零的数字来显示月(1–12)。
如果m是直接跟在h或hh之后,那么显示的将是分而不是月。
mm以有前导零的数字来显示月(01–12)。
如果m是直接跟在h或hh之后,那么显示的将是分而不是月。
mmm以简写来表示月(Jan–Dec)。
mmmm以全称来表示月(January–December)。
oooo与mmmm一样,它只是该字符串的本地化版本。
q将一年
如何将文本型:
2003.08.04转换为日期型:
2003-08-04
cdate(replace("2003.08.04",".","-"))
显示当前日期在该年中所处的星期号
=Format(Now(),"ww")
ww为1到53。
显示日期字段值的四位年份值。
=DatePart("yyyy",[订购日期])
显示日期字段值前10天的日期值。
=DateAdd("y",-10,[应付日期])
显示日期字段值前一个月的日期值。
=DateAdd("m",-1,Date())
显示日期1和日期2之间相差的天数。
=DateDiff("d",[订购日期],[发货日期])
从今天算起到三个月后的日期之间的记录。
Betweebdate()andadddate(3,date())
根据出生日期计算年龄(周岁)
=IIf(Month(Date())-Month([出生年月日])>-1,Year(Date())-Year([出生年月日]),Year(Date())-Year([出生年月日])-1)
日期函数示例
当天日期:
=Date()
当日:
=Day(date)
当月:
=Month(date())
当年:
=Year(date())
当季:
=DatePart("q",Date())
算出每个月的天数
一法:
Dima,b,c
a=Year(Now())
b=Month(Now())
c=Format((a&"/"&b+1&"/1"),"######")-Format((a&"/"&b&"/1"),"######")
二法:
DateDiff("d",Format(Date,"yyyy-mm-01"),Format(DateAdd("m",-1,Date),"yyyy-mm-01"))
DateDiff可以算出两个日期之间相差几天!
三法:
Day(DateAdd("d",-1,Format(Date,"yyyy-mm-01")))
day函数可以知道某个日期是这个月的第几天,我们把这个月的最后一天拿出来DAY一下!
应该还有更好的方法!
比如说可以定义一个数组,把每个月的日子放进去,或者说写一个函数算每一个月的天数
只要考虑一下闺年的问题就可以了!
如何得到某年每个月的第一天是星期几
PrivateSubCommand1_Click()
DimiAsInteger,AAsInteger,BAsInteger,CAsString
A=InputBox("请输入年份","某年每个月的第一天是星期几")
Form1.Cls
Fori=1To12
C=A&"-"&i&"-1"
B=Weekday(C)
SelectCaseB
CasevbSunday
PrintA&"年"&i&"月1日是星期日"
CasevbMonday
PrintA&"年"&i&"月1日是星期一"
CasevbTuesday
PrintA&"年"&i&"月1日是星期二"
CasevbWednesday
PrintA&a
-----------
SqlServer中的日期与时间函数?
蒰(寝?
1.当前系统日期、时间F桗?
赝Q?
selectgetdate()鈙H倂建
鶞Oh牧\"葵
2.dateadd在向指定日期加上一段时间的基础上,返回新的datetime值r鯔俏?
?
例如:
向日期加上2天?
5皴?
煃
selectdateadd(day,2,'2004-10-15')--返回:
2004-10-1700:
00:
00.000Ew郬*矝?
?
礛娞>?
?
3.datediff返回跨两个指定日期的日期和时间边界数。
jou秙溽
selectdatediff(day,'2004-09-01','2004-09-18')--返回:
17?
鼄G驂W
毰筒?
?
?
4.datepart返回代表指定日期的指定日期部分的整数。
劸赔D\//穙
SELECTDATEPART(month,'2004-10-15')--返回10Rk銍倝K$7$
欤晛u!
:
?
5.datename返回代表指定日期的指定日期部分的字符串堼梶U咙
SELECTdatename(weekday,'2004-10-15')--返回:
星期五S吜瞎d湺
'茜?
鈠6
6.day(),month(),year()--可以与datepart对照一下V?
u罞戀/m
?
HZ?
S
select当前日期=convert(varchar(10),getdate(),120)s1喨?
?
当前时间=convert(varchar(8),getdate(),114)即N屾蛶4
抗栳B銫K'/
selectdatename(dw,'2004-10-15')?
3慯萳籋?
b?
|
select本年第多少周=datename(week,'2004-10-15')宎梯d<短?
今天是周几=datename(weekday,'2004-10-15')牶?
1嶙挈
鱒聈W]?
n
奄<8姓婨?
函数参数/功能y?
蓦?
?
GetDate()返回系统目前的日期与时间'瞫濾#縶?
DateDiff(interval,date1,date2)以interval指定的方式,返回date2与date1两个日期之间的差值date2-date1鸊脺儔砍?
DateAdd(interval,number,date)以interval指定的方式,加上number之后的日期"鐺e蠅5流
DatePart(interval,date)返回日期date中,interval指定部分所对应的整数值鑒/蟉错渥
DateName(interval,date)返回日期date中,interval指定部分所对应的字符串名称杶逯夤脅c
呓h:
l=?
参数interval的设定值如下:
掅YW@鲫=
8?
濠?
值缩写(SqlServer)(Access和ASP)说明蔟T)軤
YearYyyyyy年1753~9999A玍癣0qg
QuarterQqq季1~4駨#伥沠?
F;
MonthMmm月1~12O?
c(a耀蒪
DayofyearDyy一年的日数,一年中的第几日1-366Y觲挰褽
DayDdd日,1-31粤茎綪嶴诳
WeekdayDww一周的日数,一周中的第几日1-7襪齀&?
WeekWkww周,一年中的第几周0~51?
X葤7膧
HourHhh时0~23F?
F啇U暜?
MinuteMin分钟0~59貞』~r笍o
SecondSss秒0~59?
6Y?
";d
MillisecondMs-毫秒0~999AQ彩堐?
E8
?
闪潽麘缂
Ъ@p彰t3
access和asp中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似畵?
b'?
HLu阏p缤
举例:
/0R符?
氦?
1.GetDate()用于sqlserver:
selectGetDate()邊象4面?
X"g#$逹
2.DateDiff('s','2005-07-20','2005-7-2522:
56:
32')返回值为514592秒O侠札⒚
DateDiff('d','2005-07-20','2005-7-2522:
56:
32')返回值为5天倮KiC伅嬟
v嶇嶽?
觬
3.DatePart('w','2005-7-2522:
56:
32')返回值为2即星期一(周日为1,周六为7)?
聕qV0?
DatePart('d','2005-7-2522:
56:
32')返回值为25即25号y萱1雍破?
DatePart('y','2005-7-2522:
56:
32')返回值为206即这一年中第206天髄?
驐?
DatePart('yyyy','2005-7-2522:
56:
32')返回值为2005即2005年
========
MSSQL汉字转拼音函数实现语句
2009-11-1016:
37
/*-------------------------------------------------------------
函数:
fn_GetPinyin
描述:
汉字转拼音(无数据表版)
使用:
dbo.fn_GetPinyin('中华人民共和国')=zhonghuarenmingongheguo
作者:
流香羽(改编:
Tony)
-------------------------------------------------------------*/
IFOBJECT_ID('[fn_GetPinyin]')ISNOTNULL
DROPFUNCTION[fn_GetPinyin]
GO
createfunction[dbo].[fn_GetPinyin](@wordsnvarchar(2000))
returnsvarchar(8000)
as
begin
declare@wordnchar
(1)
declare@pinyinvarchar(8000)
declare@iint
declare@words_lenint
declare@unicodeint
set@i=1
set@words=ltrim(rtrim(@words))
set@words_len=len(@words)
while(@i<=@words_len)--循环取字符
begin
set@word=substring(@words,@i,1)
set@unicode=unicode(@word)
set@pinyin=ISNULL(@pinyin+SPACE
(1),'')+
(casewhenunicode(@word)between19968and19968+20901then
(selecttop1pyfrom(
select'a'aspy,N'厑'asword
unionallselect'ai',N'靉'
unionallselect'an',N'黯'
unionallselect'ang',N'醠'
unionallselect'ao',N'驁'
unionallselect'ba',N'欛'
unionallselect'bai',N'瓸'--韛兡瓸
unionallselect'ban',N'瓣'
unionallselect'bang',N'鎊'
unionallselect'bao',N'鑤'
unionallselect'bei',N'鐾'
unionallselect'ben',N'輽'
unionallselect'beng',N'鏰'
unionallselect'bi',N'鼊'
unionallselect'bian',N'變'
unionallselect'biao',N'鰾'
unionallselect'bie',N'彆'
unionallselect'bin',N'鬢'
unionallselect'bing',N'靐'
unionallselect'bo',N'蔔'
unionallselect'bu',N'簿'
unionallselect'ca',N'囃'
unionallselect'cai',N'乲'--縩乲
unionallselect'can',N'爘'
unionallselect'cang',N'賶'
unionallselect'cao',N'鼜'
unionallselect'ce',N'簎'
unionallselect'cen',N'笒'
unionallselect'ceng',N'乽'--硛硳岾猠乽
unionallselect'cha',N'詫'
unionallselect'chai',N'囆'
unionallselect'chan',N'顫'
unionallselect'chang',N'韔'
unionallselect'chao',N'觘'
unionallselect'che',N'爡'
unionallselect'chen',N'讖'
unionallselect'cheng',N'秤'
unionallselect'chi',N'鷘'
unionallselect'chong',N'銃'
unionallselect'chou',N'殠'
unionallselect'chu',N'矗'
unionallselect'chuai',N'踹'
unionallselect'chuan',N'鶨'
unionallselect'chuang',N'愴'
unionallselect'chui',N'顀'
unionallselect'chun',N'蠢'
unionallselect'chuo',N'縒'
unionallselect'ci',N'嗭'--賜嗭
unionallselect'cong',N'謥'
unionallselect'cou',N'輳'
unionallselect'cu',N'顣'
unionallselect'cuan',N'爨'
unionallselect'cui',N'臎'
unionallselect'cun',N'籿'
unionallselect'cuo',N'錯'
unionallselect'da',N'橽'
unionallselect'dai',N'靆'
unionallselect'dan',N'饏'
unionallselect'dang',N'闣'
unionallselect