Convert the specified component of a DBDATETIME structure into its corresponding character string.
int dbdatename(dbproc, charbuf, datepart, datetime) DBPROCESS *dbproc; char *charbuf; int datepart; DBDATETIME *datetime;
A pointer to the DBPROCESS structure that provides the connection for a particular front-end/server process. It contains all the information that DB-Library uses to manage communications and data between the front end and server.
A pointer to a character buffer that will contain the null-terminated character representation of the datetime component of interest. If datetime is NULL, charbuf will contain a zero-length string.
The date component of interest. Table 2-15 lists the date parts, the date part symbols recognized by DB-Library and the expected values. Note that the names of the months and the days in this table are those for English.
Date part |
Symbol |
Character representation of value |
---|---|---|
year |
DBDATE_YY |
1753 – 9999 |
quarter |
DBDATE_QQ |
1 – 4 |
month |
DBDATE_MM |
January – December |
day of year |
DBDATE_DY |
1 – 366 |
day |
DBDATE_DD |
1 – 31 |
week |
DBDATE_WK |
1 – 54 (for leap years) |
weekday |
DBDATE_DW |
Monday – Sunday |
hour |
DBDATE_HH |
0 – 23 |
minute |
DBDATE_MI |
0 – 59 |
second |
DBDATE_SS |
0 – 59 |
millisecond |
DBDATE_MS |
0 – 999 |
A pointer to the DBDATETIME value of interest.
The number of bytes placed into *charbuf.
In case of error, dbdatename returns -1.
dbdatename converts the specified component of a DBDATETIME structure into a character string.
The names of the months and weekdays are in the language of the specified DBPROCESS. If dbproc is NULL, these names will be in DB-Library’s default language.
This function is very similar to the Transact-SQL datename function.
The following code fragment illustrates the use of dbdatename:
dbcmd(dbproc, "select name, crdate from \
master..sysdatabases");
dbsqlexec(dbproc);
dbresults(dbproc);
while (dbnextrow(dbproc) != NO_MORE_ROWS)
{
/*
** Print the database name and its date info
*/
dbconvert(dbproc, dbcoltype(dbproc, 2),
dbdata(dbproc, 2), dbdatlen(dbproc, 2),
SYBCHAR, datestring, -1);
printf("%s: %s\n", (char *) (dbdata
(dbproc, 1)), datestring);
/* Print the parts of the creation date */
dbdatename(dbproc, datestring, DBDATE_YY,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tYear = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_QQ,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tQuarter = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_MM,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tMonth = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_DW,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tDay of week = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_DD,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tDay of month = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_DY,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tDay of year = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_HH,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tHour = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_MI,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tMinute = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_SS,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tSecond = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_MS,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tMillisecond = %s.\n", datestring);
dbdatename(dbproc, datestring, DBDATE_WK,
(DBDATETIME *) (dbdata(dbproc, 2)));
printf("\tWeek = %s.\n", datestring);