关于sap的日期,时间

1.日期类型(D,Date)
在sap里Date类型通过隐含的转换函数变为CHARACTER*8.
Elementary data type = D 内部长度和 输出长度都等于8
System data type = DATS 内部长度 = 8 输出长度 = 10
所有的日期类型在sap里都会通过转换函数存为 'YYYYMMDD'格式.
Most of the times both type 'D' and 'DATS' behaves similarly except when they are output without any overriding additions. In such cases a 'DATS' type variable will be output with separators as specified in the "Date Format Settings" while a type 'd' variable will be output without separators.

输出格式:输出格式可以有三种方法设置:

1. 用户设定 - Transaction SU3
a. 设置用户参数
2. 本地/国家格式日期设定 - Transaction OY01
a. 先使用SET COUNTRY <xx> or SET LOCALE COUNTRY <xx>命令, 在调用输出显示.
3. 直接使用 "WRITE' 的格式
a. DD/MM/YY
b. MM/DD/YY
c. DD/MM/YYYY
d. MM/DD/YYYY
e. DDMMYY
f. MMDDYY
g. YYMMDD
h. USING EDIT MASK '==SDATE' -value checked for validity
i. USING EDIT MASK '==LDATE' -value checked for validity


2.时间(Time)

在sap里Time类型通过隐含的转换函数变为CHARACTER*6.
Elementary data type = T 内部长度和 输出长度都等于 6
System data type = TIMS 内部长度 =6  输出长度都等于= 8
所有的时间类型在sap里都会通过转换函数存为 'HHMMSS'格式.
Most of the times both type 'T' and 'TIMS' behaves similarly except when they are output without any overriding additions. In such cases a 'TIMS' type variable will be output with separators as specified (HH:MM:SS) while a type 'T' variable will be output without separators.

Working with Timestamp
An extension of the DATE data type that can store date and time data (including fractional seconds).

The ABAP Dictionary contains the data elements TIMESTAMP, TIMESTAMPL,

TIMESTAMP = P(8) Decimal 0
TIMESTAMPL = P(11) Decimal 7 ( decimal for fraction of second)

Commands
GET TIME: Places the current time in the system field SY-UZEIT. At the same time, SY-DATUM is set, and the system fields for the local time zone (SY-TIMLO,SY-DATLO, and SY-ZONLO) are refreshed.

GET TIME STAMP FIELD <F> Returns the timestamp in short or long form. The short form contains the current date and time; the long form also contains seven decimal places for fractions of a second, making the timestamp accurate to within 100 nanoseconds.

Time Zone
the world is divided into 24 time zones spaced at intervals of 15 degrees in longitude. The zones start at 0 with Greenwich. Within each time zone, the hour and minute of the day is defined to be the same. Time zones are usually specified by the number of hours they differ from GMT

TTZCU Customizing time zones table.

DST : Daylight Saving Time gives us the opportunity to enjoy sunny summer evenings by moving our clocks an hour forward in the spring.

Note :
Simple write statement is not going to put Timestamp in the desired output format. One has to specify a TIME ZONE for output formatting.

Transaction STZBD维护时区.
1. TTZZ : Time zones
2. TTZR : Time zone rules
3. TTZD : Summer time rules (Daylight saving).
4. TTZDF : Summer time rules (fixed annual dates)
5. TTZDV : Summer time rules (variable dates)

日期时间相关的系统变量
1. SY-TZONE Date and time, time difference from Greenwich Mean Time.
2. SY-DATUM Date and time, current (application server) date.
3. SY-UZEIT Date and time, current application server time.
4. SY-ZONLO Date and time, time zone of user.
5. SY-DATLO Date and time, local date of user.
6. SY-TIMLO Date and time, local time for user.

Time Stamp转换
CONVERT TIME STAMP tst
TIME ZONE tz
INTO DATE d
TIME t [DAYLIGHT SAVING TIME dst].

CONVERT DATE d
TIME t [DAYLIGHT SAVING TIME dst]
INTO TIME STAMP tst
TIME ZONE tz.


The time stamp tst is always UTC time while d and t are always based on the time zone tz.The system always converts using the difference between the timezone tz and UTC time.

This implies that if you want to convert between non-UTC time zones then you can use the above statements in conjunction, First convert date & time in time zone 1 into UTC time stamp and then convert the UTC time stamp into date & time in time zone 2.  

posted on 2006-11-17 17:33  毛小娃  阅读(634)  评论(0编辑  收藏  举报

导航