Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform Systeem (PDW)
SQL-database in Microsoft Fabric
OLE DB-stuurprogramma downloaden
Dit artikel beschrijft datum/tijd-conversies die zijn uitgevoerd tussen SQL Server 2008 (10.0.x) en latere versies, en een clientapplicatie geschreven met OLE DB Driver voor SQL Server.
Conversions
De volgende tabel beschrijft conversies tussen het type dat aan de client wordt teruggegeven en het type in de binding. Voor uitvoerparameters, als ICommandWithParameters::SetParameterInfo is aangeroepen en het type gespecificeerd in pwszDataSourceType niet overeenkomt met het daadwerkelijke type op de server, zal de server een impliciete conversie uitvoeren en zal het type dat aan de client wordt teruggegeven overeenkomen met het type dat is gespecificeerd via ICommandWithParameters::SetParameterInfo. Dit kan leiden tot onverwachte conversieresultaten wanneer de conversieregels van de server afwijken van die beschreven in dit artikel. Wanneer bijvoorbeeld een standaarddatum moet worden opgegeven, gebruikt SQL Server 1900-1-1 in plaats van 1899-12-30.
| Aan-> Van |
DATE | DBDATE | DBTIME | DBTIME2 | DB-tijdstempel | DBTIMESTAMPOFFSET | ARCHIVTIME | BYTES | VARIANT | SSVARIANT | BSTR | STR | WSTR |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Datum | 1, 7 | OK | - | - | 1 | 1, 3 | 1, 7 | - | OK (VT_BSTR) | OK | OK | 4 | 4 |
| Time | 5, 6, 7 | - | 9 | OK | 6 | 3, 6 | 5, 6 | - | OK (VT_BSTR) | OK | OK | 4 | 4 |
| Smalldatetime | 7 | 8 | 9, 10 | 10 | OK | 3 | 7 | - | 7 (VT_DATE) | OK | OK | 4 | 4 |
| Datum/tijd | 5, 7 | 8 | 9, 10 | 10 | OK | 3 | 7 | - | 7 (VT_DATE) | OK | OK | 4 | 4 |
| Datetime2 | 5, 7 | 8 | 9, 10 | 10 | 7 | 3 | 5, 7 | - | OK (VT_BSTR) | OK | OK | 4 | 4 |
| datum- en tijdcompensatie | 5, 7, 11 | 8, 11 | 9, 10, 11 | 10, 11 | 7, 11 | OK | 5, 7, 11 | - | OK (VT_BSTR) | OK | OK | 4 | 4 |
| Char, Varchar, Nchar, Nvarchar |
7, 13 | 12 | 12, 9 | 12 | 12 | 12 | 7, 13 | N/A | N/A | N/A | N/A | N/A | N/A |
| Sql_variant (datum) |
7 | 8 | 9, 10 | 10 | OK | 3 | 7 | - | 7(VT_DATE) | OK | OK | 4 | 4 |
| Sql_variant (smalldatetime) |
7 | 8 | 9, 10 | 10 | OK | 3 | 7 | - | 7(VT_DATE) | OK | OK | 4 | 4 |
| Sql_variant (datum) |
1, 7 | OK | 2 | 2 | 1 | 1, 3 | 1, 7 | - | OK(VT_BSTR) | OK | OK | 4 | 4 |
| Sql_variant (tijd) |
5, 6, 7 | 2 | 6 | OK | 6 | 3, 6 | 5, 6 | - | OK(VT_BSTR) | OK | OK | 4 | 4 |
| Sql_variant (datetime2) |
5, 7 | 8 | 9, 10 | 10 | OK | 3 | 5, 7 | - | OK(VT_BSTR) | OK | OK | 4 | 4 |
| Sql_variant (datum-tijd-verplaatsing) |
5, 7, 11 | 8, 11 | 9, 10, 11 | 10, 11 | 7, 11 | OK | 5, 7, 11 | - | OK(VT_BSTR) | OK | OK | 4 | 4 |
Sleutel tot symbolen
| Symbol | Meaning |
|---|---|
| OK | Er is geen conversie nodig. |
| - | Er wordt geen conversie ondersteund. Als de binding wordt gevalideerd wanneer IAccessor::CreateAccessor wordt aangeroepen, wordt DBBINDSTATUS_UPSUPPORTEDCONVERSION teruggegeven in rgStatus. Wanneer accessorvalidatie wordt uitgesteld, wordt DBSTATUS_E_BADACCESSOR ingesteld. |
| 1 | De tijdvelden zijn op nul gezet. |
| 2 | DBSTATUS_E_CANTCONVERTVALUE is klaar. |
| 3 | De tijdzone staat op nul. |
| 4 | Als de clientbuffer niet groot genoeg is, is DBSTATUS_S_TRUNCATED ingesteld. Wanneer het servertype fracties van seconden bevat, komt het aantal cijfers in de resultaatreeks exact overeen met de schaal van het servertype. |
| 5 | Het afkappen van seconden of fracties van seconden wordt genegeerd. |
| 6 | De datum wordt ingesteld op de huidige datum, tenzij de bron een string-tijdliteraal is en de bestemming DBTYPE_DATE. In dit geval wordt 1899-12-30 gebruikt. |
| 7 | Als de waarde overloopt, wordt DBSTATUS_E_DATAOVERFLOW vastgesteld. |
| 8 | Tijdvelden worden genegeerd. |
| 9 | Fractionele secondenvelden worden genegeerd. |
| 10 | Het datumonderdeel wordt genegeerd. |
| 11 | De tijd wordt omgezet naar de tijdzone van de cliënt. Als er een fout optreedt tijdens deze omzetting, wordt DBSTATUS_E_DATAOVERFLOW ingesteld. |
| 12 | De string wordt geparsed als een ISO-literaal en omgezet naar het doeltype. Als dit faalt, wordt de string geparseerd als een OLE-datumliteraal (dat ook tijdcomponenten heeft) en omgezet van een OLE-datum (DBTYPE_DATE) naar het doeltype. De string moet voldoen aan de syntaxis van literals van het doeltype dat is toegestaan voor ISO-formaat parsing om succesvol te zijn. Om OLE-parsing te laten slagen, moet de string voldoen aan de syntaxis die door OLE wordt herkend. Als de string niet kan worden geparseerd, wordt DBSTATUS_E_CANTCONVERTVALUE vastgesteld. Als een componentwaarde buiten bereik ligt, wordt DBSTATUS_E_DATAOVERFLOW ingesteld. |
| 13 | De string wordt geparsed als een ISO-literaal en omgezet naar het doeltype. Als dit faalt, wordt de string geparseerd als een OLE-datumliteraal (dat ook tijdcomponenten heeft) en omgezet van een OLE-datum (DBTYPE_DATE) naar het doeltype. De string moet voldoen aan de syntaxis voor datetime-literals, tenzij de bestemming DBTYPE_DATE of DBTYPE_DBTIMESTAMP is. Als dit het geval is, is een datetime of time literal toegestaan zodat ISO-formaat parsing succesvol is. Om OLE-parsing te laten slagen, moet de string voldoen aan de syntaxis die door OLE wordt herkend. Als de string niet kan worden geparseerd, wordt DBSTATUS_E_CANTCONVERTVALUE vastgesteld. Als een componentwaarde buiten bereik ligt, wordt DBSTATUS_E_DATAOVERFLOW ingesteld. |