datetime 資料類型轉換 (ODBC)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

下列轉換已由 ODBC 定義,或是 ODBC 的一致延伸模組。 每個提供者所提供的轉換是由提供者所服務的社群所決定,因此提供者之間通常會不一致。 方括弧中的值是選擇性的。

  • datetime 字串的格式為 'yyyy-mm-dd[ hh:mm:ss[.9999999][ 加/減 hh:mm]]'

  • 時間字串的格式為 'hh:mm:ss[.9999999]'

  • 日期字串的格式為 'yyyy-mm-dd'

字串的轉換在空白和欄位寬度上允許彈性。 如需詳細資訊,請參閱 ODBC 日期和時間改進 資料類型支援的<資料格式:字串和常值>一節

下面是一般轉換規則:

  • 如果沒有任何時間存在,但是接收者可以儲存時間,則時間會設定為零。

  • 如果沒有日期,但接收者可以儲存日期,則會使用目前的日期。

  • 如果用戶端所使用的資料類型中沒有時區,但伺服器可以儲存時區,則日期會儲存在用戶端時區中。 請注意,這與伺服器行為不同。

  • 如果伺服器類型中沒有時區,但用戶端類型具有時區,時間就會轉換成 UTC,再儲存在伺服器上。

  • 如果時間存在,但接收者無法儲存時間,則會忽略時間元件。

  • 如果日期存在,但接收者無法儲存日期,則會忽略日期元件。

  • 如果從 C 轉換為 SQL 時發生秒數或小數秒的截斷,則會使用 SQLSTATE 22008 和訊息「Datetime 欄位溢位」產生診斷記錄。

  • 如果從 SQL 轉換成 C 時發生秒數或小數秒的截斷,則會使用 SQLSTATE 01S07 和訊息「小數截斷」產生診斷記錄。

本節內容

從 C 轉換為 SQL
列出當您從 C 類型轉換成 SQL Server 資料/時間類型時要考慮的問題。

從 SQL 轉換成 C
列出當您從 SQL Server 資料/時間類型轉換成 C 類型時要考慮的問題。

另請參閱

日期和時間改善 (ODBC)