A:
天软日期时间的存储:
天软的日期是一个实数,从1899-12-31为第1天开始算起,每天加1,这个跟Excel内部存储的日期是一样的。如果是时间的话,是以小数点的形式存储的。比如0.5就是中午12点,那么2015-11-01 12:00:00在内部存储是42309.5。
天软日期时间的表达:
TSL支持20101231.0931T表达2010年12月31日9点31分。
或通过strToDate('2020-01-01')等方式进行指定。
更多转换为日期时间的函数可以参考下列范例。
天软日期时间的展示:
如果日期数据提取出来,在结果页面中看到的是类似于42309.5这样的数据,可以把鼠标放在日期这列上面,然后 Ctrl+D ,那么这列的值就会显示为字符串的日期。要注意的是,显示的时间点,跟函数返回时带的小数点有关系,所以,如果想要把时间更准确的显示,在return数据之前,对日期这列进行日期格式的转化,用函数datetostr或datetimetostr。
天软日期时间的转换函数:
生成或其它格式->日期时间:
函数定义 | 函数功能 | 转换关系
|
---|
EncodeDate(Y,M,D) | 根据指定的年月日生成一个日期 | 生成日期
|
EncodeTime(H,M,S,MS) | 根据指定的时、分、秒、毫秒生成一个时间 | 生成时间
|
EncodeDateTime(Y,M,D,H,N,S,Z) | 根据指定的年月日时分秒毫秒生成一个日期时间 | 生成日期时间
|
strToDate(S) | 将一个"yyyy-mm-dd"格式的字符串转成一个日期 | "yyyy-mm-dd"->Tdate
|
strToTime(S) | 将一个"HH:NN:SS"格式的字符串转成一个时间 | "hh:nn:ss"->Ttime
|
strToDateTime(S) | 将一个" yyyy-mm-dd hh:nn:ss"格式的字符串转成一个日期时间 | "yyyy-mm-dd hh:nn:ss"->TDatetime
|
strToDateTIme2(S) | 将一个" yyyy-mm-dd hh:nn:ss:zzz"格式的字符串转成一个日期时间 | 功能同上,并支持毫秒的转换
|
IntToDate(IntD) | 将一个整型(yyyymmdd,如20220301)转成日期类型 | yyyymmdd->Tdate
|
StrToDateExt(S,sf) | 将按/分割的字符串转成日期类型 | sf=0 d/m/yyyy->Tdate
sf=1 yyyy/m/d->Tdate
sf=2 m/d/yyyy->Tdate
|
日期时间类型转成其它格式:
函数定义 | 函数功能 | 转换关系
|
---|
DateToStr(Endt) | 将天软日期类型转成"yyyy-mm-dd"格式的字符串 | Tdate->"yyyy-mm-dd"
|
DateTimeToStr(Endtime) | 将天软日期时间转成"yyyy-mm-dd hh:nn:ss"格式的字符串 | Tdatetime->"yyyy-mm-dd hh:mm:ss"
|
FormatDateTime(Fstr,Endtime) | 将天软日期时间类型按指定格式串转换成字符串 | Tdatetime->任意自定义的字符串格式
具体用法可参考:FAQ:FormatDateTime
|
DateToInt(Endt) | 将天软日期类型转成整型(yyyymmdd),如20220301 | Tdate->yyyymmdd
|
以上只列出常用的基础转换函数,更多可参考:FAQ:
日期时间
转换效果的具体展示:
1、datetostr(day):将日期格式转化为字符串格式。
return datetostr(42309); //返回2015-11-01
return datetostr(today()); //把今天的日期转化为字符串日期形式
注:不管day带了时间点没有,都只返回字符串的日期(不带时间点)。
2、datetimetostr(day):将日期时间格式转化为字符串格式,与datetostr不同的是带了时间点。
return datetimetostr(42309.5);
return datetimetostr(now()); //返回 2015-11-06 16:44:59 ,返回的是当时的日期和时间
return datetimetostr(today()); //返回2015-11-06 ,today()中,是没有带时间的,要注意
3、timetostr(day):将时间转化为字符串格式。day可以是带日期的日期时间数据,但将只返回day的时间部分的字符串格式。
return timetostr(42309.5); //返回 12:00:00
return timetostr(now()); //返回 16:48:16
4、strtodate(s):将字符串格式的日期转化为日期格式。
return strtodate('2015-11-01'); //返回42309
5、strtodatetime(s):将字符串格式的日期时间转化为日期格式。
return strtodatetime('2015-11-01 12:00:00'); //返回42309.5
6、strtotime(s):将字符串格式的时间转化为时间格式
return strtotime('12:00:00'); //返回 0.5
7、datetoint(day): 将日期转化为整型日期
return datetoint(42309); //返回 20151101
8、StrToDateExt(s,sf):将yyyy/m/d字符串转成日期
return StrToDateExt("2024/5/1",1);
//批量处理
t:=array("2024/5/1","2024/5/3");
return t::=StrToDateExt(mcell,1);
9、inttodate(intday):将整型日期转化为日期格式
return inttodate(20151101); //返回 42309
10、FormatDateTime(Fstr,Endtime):将日期时间转化为"yyyy/mm/dd hh:nn:ss"格式
return FormatDateTime("yyyy/mm/dd hh:nn:ss",20230329.1630T);//返回字符串2023-03-29 16:30:00
11、FormatDateTime(Fstr,Endtime):将日期时间转化为带毫秒的字符串
return FormatDateTime("yyyy-mm-dd hh:nn:ss:zzz",20230329.163525300T);//返回字符串2023-03-29 16:35:25:300
注:将天软日期时间转换成更多其它字符串格式的功能,都可通过FormatDateTime实现。用法可参考:FAQ:
FormatDateTime