Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kesalahan mengonversi dbtype_dbdate ke tanggal

harap ini membantu (saya tidak menggunakan SQL Server 2012).
jika ODBC Anda menautkan ke db2, untuk rentang tanggal tidak didukung mis. '0001-01-01', Anda perlu melakukan cast. Biasanya ini berfungsi.

SELECT * 
FROM   OPENQUERY(LINKEDSERVERNAME, 'SELECT Product, 
                                       CAST(DateLastReceipt AS CHAR(10))
                                FROM   ProductTable')

Jika Anda masih menginginkan hasilnya sebagai tanggal, cukup gunakan CASE dan ganti tanggal yang tidak valid ke tanggal default Anda .e.g.

SELECT *
FROM   OPENQUERY(LINKEDSERVERNAME, 'SELECT Product, 
                               ,CASE WHEN DateLastReceipt AS CHAR(10)) = ''0001-01-01''
                                       THEN CURRENT_DATE
                                     ELSE DateLastReceipt 
                                     END
                                FROM   ProductTable')

Anda mungkin perlu mengubah CURRENT_DATE menjadi CURRENT_TIMESTAMP dan komposisi CASE tergantung pada server db Anda dan kebutuhan Anda




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengantar Identitas SQL Server

  2. Pernyataan BERGABUNG Bersyarat SQL Server

  3. Bagaimana Mengenalinya jika Kolom yang Dihitung adalah Deterministik di SQL Server

  4. Fungsi SQL - Pencatatan

  5. Cara optimal untuk mengonversi ke tanggal