将日期时间/时间戳转换/转换为日期的问题

时间:2018-08-12 09:56:23

标签: sql sql-server pentaho-spoon

当我尝试将 DateTime / timestamp 转换为日期时遇到麻烦。

源是SQL Server,我使用的SQL是CONVERT(date,[the_column]) AS [the_column]或其他SQL是CAST([the_column] AS DATE) AS [the_column]

无论我使用哪一个,我都会得到错误的日期-结果不是2014-11-25,而是2014-11-23。我试图更改数据库中列的类型(原来是datetime,我将其更改为timestamp)-没什么区别。

有人知道原因可能是什么,解决方案是什么?谢谢。 附言这是我使用的SQL。

  SELECT [NUMER_ZAMOWIENIA]
      ,[NUMER_ODBIORCY]
      ,CONVERT(date,[DATA_REJESTRACJI]) AS [DATA_REJESTRACJI]
      ,CAST([TERMIN_KLIENTA] AS DATE) AS [TERMIN_KLIENTA]
      ,[INDEKS]
      ,[ILOSC_ZAMOWIONA]
      ,[ILOSC_WYSLANA]
      ,[STATUS_POZYCJI]
      ,[CENA]
      ,[CENA_SPRZEDAZY]
      ,CAST([DATA_REALIZACJI] AS DATE) AS [DATA_REALIZACJI]
      ,[ORIGINAL_NUMER]
      ,DATEPART(hour,[ZAMOWIENIA].[DATA_REJESTRACJI]) AS HOUR_REG
      ,DATEPART(minute,[ZAMOWIENIA].[DATA_REJESTRACJI]) AS MIN_REG
      ,DATEPART(hour,[ZAMOWIENIA].[TERMIN_KLIENTA]) AS HOUR_TER
      ,DATEPART(minute, [ZAMOWIENIA].[TERMIN_KLIENTA]) AS MIN_TER
      ,DATEPART(hour,[ZAMOWIENIA].[DATA_REALIZACJI]) AS HOUR_REALIZ
      ,DATEPART(minute, [ZAMOWIENIA].[DATA_REALIZACJI]) AS MIN_REALIZ
  FROM [ACCESS].[dbo].[ZAMOWIENIA]

Query results in PDI

Query results in MSSQL Server

0 个答案:

没有答案