Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A dátum-, idő- és időbélyeg-konstansok feloldósorozata a következő:
{-type'value'}
ahol a literális típus az alábbi táblázatban felsorolt értékek egyike.
| literáltípus | Meaning | Az érték formátuma |
|---|---|---|
| d | Date | yyyy-Mm-Dd |
| T | Idő* | hh:mm:ss[1] |
| Ts | Időbélyeg | yyyy-mm-ddhh:mm:ss[.f...][1] |
[1] A másodperc összetevőt tartalmazó idő- vagy időbélyeg-intervallumban a tizedesvesszőtől jobbra lévő számjegyek száma a másodperc pontosságától függ, ahogyan az SQL_DESC_PRECISION leíró mezőben található. (További információ: SQLSetDescField.)
A dátum-, idő- és időbélyeg-menekülési sorozatokról további információt a C. függelékben, az SQL Grammar résznél található Dátum, Idő és Időbélyeg menekülési sorozatok című szakaszban talál.
Például az alábbi SQL-utasítások mindegyike frissíti az 1023-ás értékesítési rendelés nyitott dátumát a Rendelések táblában. Az első utasítás a feloldósorozat szintaxisát használja. A második utasítás az Oracle Rdb natív szintaxisát használja a DATE oszlophoz, és nem működik együtt.
UPDATE Orders SET OpenDate={d '1995-01-15'} WHERE OrderID=1023
UPDATE Orders SET OpenDate='15-Jan-1995' WHERE OrderID=1023
A dátum-, idő- vagy időbélyeg-konstansok feloldósorozata dátum-, idő- vagy időbélyegparaméterhez kötött karakterváltozóban is elhelyezhető. Az alábbi kód például egy karakterváltozóhoz kötött dátumparamétert használ az 1023-ás értékesítési rendelés nyitott dátumának frissítéséhez a Rendelések táblában:
SQLCHAR OpenDate[56]; // The size of a date literal is 55.
SQLINTEGER OpenDateLenOrInd = SQL_NTS;
// Bind the parameter.
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_TYPE_DATE, 0, 0,
OpenDate, sizeof(OpenDate), &OpenDateLenOrInd);
// Place the date in the OpenDate variable. In addition to the escape
// sequence shown, it would also be possible to use either of the
// strings "{d '1995-01-15'}" and "15-Jan-1995", although the latter
// is data source-specific.
strcpy_s( (char*) OpenDate, _countof(OpenDate), "{d '1995-01-15'}");
// Execute the statement.
SQLExecDirect(hstmt, "UPDATE Orders SET OpenDate=? WHERE OrderID = 1023", SQL_NTS);
A paramétert azonban általában hatékonyabb közvetlenül dátumstruktúrához kötni:
SQL_DATE_STRUCT OpenDate;
SQLINTEGER OpenDateInd = 0;
// Bind the parameter.
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_TYPE_DATE, SQL_TYPE_DATE, 0, 0,
&OpenDate, 0, &OpenDateLen);
// Place the date in the dsOpenDate structure.
OpenDate.year = 1995;
OpenDate.month = 1;
OpenDate.day = 15;
// Execute the statement.
SQLExecDirect(hstmt, "UPDATE Employee SET OpenDate=? WHERE OrderID = 1023", SQL_NTS);
Annak megállapításához, hogy egy illesztő támogatja-e az ODBC-feloldási sorozatokat dátum-, idő- vagy időbélyeg-konstansokhoz, egy alkalmazás meghívja az SQLGetTypeInfo-t. Ha az adatforrás támogatja a dátum-, idő- vagy időbélyeg-adattípust, a megfelelő feloldási sorozatot is támogatnia kell.
Az adatforrások támogathatják az ANSI SQL-92 specifikációban definiált datetime literálokat is, amelyek eltérnek a dátum-, idő- vagy időbélyeg-konstansok ODBC-feloldási sorozataitól. Annak megállapításához, hogy egy adatforrás támogatja-e az ANSI-literálokat, egy alkalmazás meghívja az SQLGetInfo-t a SQL_ANSI_SQL_DATETIME_LITERALS lehetőséggel.
Annak megállapításához, hogy egy illesztő támogatja-e az ODBC-feloldási sorozatokat az intervallumkonstansokhoz, egy alkalmazás meghívja az SQLGetTypeInfo-t. Ha az adatforrás támogatja a datetime interval adattípust, a megfelelő feloldási sorrendet is támogatnia kell.
Az adatforrások támogathatják az ANSI SQL-92 specifikációban definiált dátum-idő literálokat is, amelyek eltérnek az ODBC-feloldási szekvenciák dátum-idő intervallum literáljaitól. Annak megállapításához, hogy egy adatforrás támogatja-e az ANSI-literálokat, egy alkalmazás meghívja az SQLGetInfo-t a SQL_ANSI_SQL_DATETIME_LITERALS lehetőséggel.