Converts DateTime, string, or numeric data to data of type date or extracts a date value from a blob. You can use one of several syntaxes, depending on the datatype of the source data.
To |
Use |
---|---|
Extract the date from DateTime data or extract a date stored in a blob |
|
Convert a string to a date |
|
Combine numeric data into a date |
Platform information for Windows To make sure you get correct return values for the year, you must verify that yyyy is the Short Date Style for year in the Regional Settings of the user’s Control Panel. Your program can check this with the RegistryGet function.
If the setting is not correct, you can ask the user to change it manually or have the application change it (by calling the RegistrySet function). The user may need to reboot after the setting is changed.
Extracts a date from a DateTime value or from a blob whose first value is a date or DateTime value.
Date ( datetime )
Argument |
Description |
---|---|
datetime |
A DateTime value or a blob in which the first value is a date or DateTime value. The rest of the contents of the blob is ignored. Datetime can also be an Any variable containing a DateTime or blob. |
Date. Returns the date in datetime as a date. If datetime contains an invalid date or an incompatible datatype, Date returns 1900-01-01. If datetime is null, Date returns null.
After a value for the DateTime variable ldt_StartDateTime has been retrieved from the database, this example sets ld_StartDate equal to the date in ldt_StartDateTime:
DateTime ldt_StartDateTime
date ld_StartDate
ld_StartDate = Date(ldt_StartDateTime)
Assuming the value of a blob variable ib_blob contains a DateTime value beginning at byte 32, the following statement converts it to a date value:
date ld_date
ld_date = Date(BlobMid(ib_blob, 32))
Converts a string whose value is a valid date to a date value.
Date ( string )
Argument |
Description |
---|---|
string |
A string containing a valid date (such as January 1, 2002, or 12-31-99) that you want returned as a date. Datetime can also be an Any variable containing a string. |
Date. Returns the date in string as a date. If string contains an invalid date or an incompatible datatype, Date returns 1900-01-01. If string is null, Date returns null.
Valid dates in strings can include any combination of day (1 to 31), month (1 to 12 or the name or abbreviation of a month), and year (2 or 4 digits). PowerBuilder assumes a 4-digit number is a year. Leading zeros are optional for month and day. The month, whether a name, an abbreviation, or a number, must be in the month location specified in the system setting for a date’s format. If you do not know the system setting, use the standard datatype date format yyyy-mm-dd.
PowerBuilder attempts to match the input string to a date
format in the regional settings on the computer. If a complete match
is not found, PowerBuilder attempts a partial match. For example,
if you use Date('01-JAN-1900')
and PowerBuilder
finds the partial match (dd-MMM-yy), PowerBuilder
parses the first two numbers of the year and gets 19. The 2-digit
year is interpreted as a year between 1930 and 2029, and the date
returned is 1/1/2019.
Date literals do not need to be converted with the Date function.
Example 1 These statements all return the date datatype for text expressing the date July 4, 2004 (2004-07-04). The system setting for a date’s format is set with the month’s position in the middle:
Date("2004/07/04")
Date("2004 July 4")
Date("04 July 2004")
Example 2 The following groups of statements check to be sure the date in sle_start_date is a valid date and display a message if it is not. The first version checks the result of the Date function to see if the date was valid. The second uses the IsDate function to check the text before using Date to convert it:
Version 1:
// Windows Control Panel date format is YY/MM/DD
date ld_my_date
ld_my_date = Date(sle_start_date.Text)
IF ld_my_date = Date("1900-01-01") THEN
MessageBox("Error", "This date is invalid: " &
+ sle_start_date.Text)
END IF
Version 2:
date ld_my_date
IF IsDate(sle_start_date.Text) THEN
ld_my_date = Date(sle_start_date.Text)
ELSE
MessageBox("Error", "This date is invalid: " &
+ sle_start_date.Text)
END IF
Date method for DataWindows in the DataWindow Reference or the online Help
Combines numbers representing the year, month, and day into a date value.
Date ( year, month, day )
Argument |
Description |
---|---|
year |
The 4-digit year (1 to 9999) of the date |
month |
The 1- or 2-digit integer for the month (1 to 12) of the year |
day |
The 1- or 2-digit integer for the day (1 to 31) of the month |
Date. Returns the date specified by the integers for year, month, and day as a date datatype. If any value is invalid (out of the range of values for dates), Date returns 1900-01-01. If any argument’s value is null, Date returns null.
These statements use integer values to set ld_my_date to 2005-10-15:
date ld_my_date
ld_my_date = Date(2005, 10, 15)