Skip to main content

Conversion: DATE, DT, TOD, LDATE, LDT, LTOD

The operators convert a date and time value into the specified data type and return a type-converted value.

The data types DATE and DT use the same memory format internally and are stored as DWORD. The resolution for DATE is 1 day. The resolution for DT is 1 second. Both begin at January 1, 1970. TOD is stored as DWORD with a resolution of 1 millisecond.

The keywords DT and TOD are alternative spellings for the data types DATE_AND_TIME and TIME_OF_DAY. However, the latter are not mapped as a type conversion command.

The data types LDATE and LDT and LTOD use the 64-bit memory format LWORD internally.

Call syntax: DATE/DT/TOD_TO_< target type> ( <operand> )

Call syntax: LDATE/LDT/LTOD_TO_< target type> ( <operand> )

Operand

Data Type

Description

Variable or literal

DATE | DATE_AND_TIME | DT | TIME_OF_DAY | TOD

LDATE | LDATE_AND_TIME | LDT | LTIME_OF_DAY | LTOD

Data type: DATE

Table 16. Operators: DATE/DT/TOD_TO_<target type>

DATE_TO_<type>

DT_TO_<type>

TOD_TO_<type>

Example

Return Value

Description

DATE_TO___UXINT

DT_TO___UXINT

TOD_TO___XINT

__UXINT, __XINT, __XWORD

DATE_TO___XINT

DT_TO___XINT

TOD_TO___XINT

__UXINT, __XINT, __XWORD

DATE_TO___XWORD

DT_TO___XWORD

TOD_TO___XWORD

__UXINT, __XINT, __XWORD

DATE_TO_BIT

DT_TO_BIT

TOD_TO_BIT

BIT

DATE_TO_BOOL

DT_TO_BOOL

TOD_TO_BOOL

DATE_TO_BOOL(D#1970-1-1)
DATE_TO_BOOL(D#2019-9-1)
DT_TO_BOOL(DT#1970-1-1-0:0:0)
DT_TO_BOOL(DT#2019-9-1-12:0:0)
TOD_TO_BOOL(TOD#0:0:0)
TOD_TO_BOOL(TOD#12:0:0)

FALSE

TRUE

FALSE

TRUE

FALSE

TRUE

If and only if the operand value can be interpreted as "0", then the operator returns a FALSE.

BOOL

DATE_TO_BYTE

DT_TO_BYTE

DTOD_TO_BYTE

Integer

-

DT_TO_DATE

TOD_TO_DATE

Resolution in seconds (although only the day is displayed)

DATE_TO_DINT

DT_TO_DINT

TOD_TO_DINT

DATE_TO_DINT(D#1970-1-1)
DATE_TO_DINT(D#1970-1-2)
DATE_TO_DINT(D#2019-9-1)
DT_TO_DINT(DT#1970-1-1-0:0:0)
DT_TO_DINT(DT#1970-1-1-0:0:1)
DT_TO_DINT(DT#2019-9-1-12:0:0.0)
TOD_TO_DINT(TOD#0:0:0)
TOD_TO_DINT(TOD#12:0:0)

0

86400

1567339200

0

1

1567339200

0

43200000

Integer

DATE_TO_DT

-

TOD_TO_DT

Data type: DATE

DATE_TO_DWORD

DT_TO_DWORD

TOD_TO_DWORD

Integer

DATE_TO_INT

DT_TO_INT

TOD_TO_INT

Integer

DATE_TO_LDATE

DT_TO_LDATE

TOD_TO_LDATE

Data type: DATE

DATE_TO_LDT

DT_TO_LDT

TOD_TO_LDT

Data type: DATE

DATE_TO_LINT

DT_TO_LINT

TOD_TO_LINT

Integer

DATE_TO_LREAL

DT_TO_LREAL

TOD_TO_LREAL

REAL, LREAL

DATE_TO_LTIME

DT_TO_LTIME

TOD_TO_LTIME

Data type: DATE

DATE_TO_LTOD

DT_TO_LTOD

TOD_TO_LTOD

Data type: DATE

DATE_TO_LWORD

DT_TO_LWORD

TOD_TO_LWORD

Integer

DATE_TO_REAL

DT_TO_REAL

TOD_TO_REAL

REAL, LREAL

DATE_TO_SINT

DT_TO_SINT

TOD_TO_SINT

Integer

DATE_TO_STRING

DT_TO_STRING

TOD_TO_STRING

DATE_TO_STRING(D#1970-1-1)
DT_TO_STRING(D#1970-1-1-0:0:1)
TOD_TO_STRING(12:0:1)

'D#1970-1-1'

'D#1970-1-1-0:0:1'

'TOD#12:0:1'

STRING

DATE_TO_TIME

DT_TO_TIME

TOD_TO_TIME

Data type: DATE

DATE_TO_TOD

DT_TO_TOD

-

Data type: DATE

DATE_TO_UDINT

DT_TO_UDINT

TOD_TO_UDINT

Integer

DATE_TO_UINT

DT_TO_UINT

TOD_TO_UINT

Integer

DATE_TO_ULINT

DT_TO_ULINT

TOD_TO_ULINT

Integer

DATE_TO_USINT

DT_TO_USINT

TODE_TO_USINT

Integer

DATE_TO_WORD

DT_TO_WORD

TOD_TO_WORD

Integer

DATE_TO_WSTRING

DT_TO_WSTRING

TOD_TO_WSTRING

DATE_TO_WSTRING(D#1970-1-1)
DT_TO_WSTRING(D#1970-1-1-0:0:1)
TOD_TO_WSTRING(12:0:1)

"D#1970-1-1"

"D#1970-1-1-0:0:1"

"TOD#12:0:0"

WSTRING



Table 17. Operators: LDATE/LDT/LTOD_TO_<target type>

LDATE_TO_<type>

LDT_TO_<type>

LTOD_TO_<type>

Example

Return Value

Description

LDATE_TO___UXINT

LDT_TO___UXINT

LTOD_TO___XINT

__UXINT, __XINT, __XWORD

LDATE_TO___XINT

LDT_TO___XINT

LTOD_TO___XINT

__UXINT, __XINT, __XWORD

LDATE_TO___XWORD

LDT_TO___XWORD

LTOD_TO___XWORD

__UXINT, __XINT, __XWORD

LDATE_TO_BIT

LDT_TO_BIT

LTOD_TO_BIT

BIT

LDATE_TO_BOOL

LDT_TO_BOOL

LTOD_TO_BOOL

BOOL

LDATE_TO_BYTE

LDT_TO_BYTE

LTOD_TO_BYTE

Integer

LDATE_TO_DATE

LDT_TO_DATE

LTOD_TO_DATE

Seconds (although only the day is displayed)

Data type: DATE

LDATE_TO_DINT

LDT_TO_DINT

LTOD_TO_DINT

Integer

LDATE_TO_DT

LDT_TO_DT

LTOD_TO_DT

Data type: DATE

LDATE_TO_DWORD

LDT_TO_DWORD

LTOD_TO_DWORD

Integer

LDATE_TO_INT

LDT_TO_INT

LTOD_TO_INT

Integer

-

LDT_TO_LDATE

LTOD_TO_LDATE

Nanoseconds (although only the day is displayed)

Data type: DATE

LDATE_TO_LDT

-

LTOD_TO_LDT

Data type: DATE

LDATE_TO_LINT

LDT_TO_LINT

LTOD_TO_LINT

Integer

LDATE_TO_LREAL

LDT_TO_LREAL

LTOD_TO_LREAL

REAL, LREAL

LDATE_TO_LTIME

LDT_TO_LTIME

LTOD_TO_LTIME

Data type: DATE

LDATE_TO_LTOD

LDT_TO_LTOD

-

Data type: DATE

LDATE_TO_LWORD

LDT_TO_LWORD

LTOD_TO_LWORD

Integer

LDATE_TO_REAL

LDT_TO_REAL

LTOD_TO_REAL

REAL, LREAL

LDATE_TO_SINT

LDT_TO_SINT

LTOD_TO_SINT

Integer

LDATE_TO_STRING

LDT_TO_STRING

LTOD_TO_STRING

STRING

LDATE_TO_TIME

LDT_TO_TIME

LTOD_TO_TIME

Data type: DATE

LDATE_TO_TOD

LDT_TO_TOD

LTOD_TO_TOD

Data type: DATE

LDATE_TO_UDINT

LDT_TO_UDINT

LTOD_TO_UDINT

Integer

LDATE_TO_UINT

LDT_TO_UINT

LTOD_TO_UINT

Integer

LDATE_TO_ULINT

LDT_TO_ULINT

LTOD_TO_ULINT

Integer

LDATE_TO_USINT

LDT_TO_USINT

LTOD_TO_USINT

Integer

LDATE_TO_WORD

LDT_TO_WORD

LTOD_TO_WORD

Integer

LDATE_TO_WSTRING

LDT_TO_WSTRING

LTOD_TO_WSTRING

WSTRING



Converting to a string

The operands of type DATE, DATE_AND_TIME, TIME_OF_DAY, DT, or TOD, which are passed to an operator for a data and time conversion, are converted to their constant syntax (literal syntax). The generated string contains the keyword D#, DT# or TOD# and then the size with its data and time unit, as indicated in the IEC 61131-3 standard.

Example 176. FBD implementation language

The controller is in online mode in order to monitor the variables.

_cds_img_convert_dates.png