当我尝试将 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]