@@ -213,8 +213,8 @@ def define_tables(cls, metadata: sa.MetaData):
213213 Table (
214214 "test_datetime_types" ,
215215 metadata ,
216- Column ("datetime" , sa .DateTime , primary_key = True ),
217- Column ("datetime_tz" , sa .DateTime (timezone = True )),
216+ Column ("datetime" , sa .DATETIME , primary_key = True ),
217+ Column ("datetime_tz" , sa .DATETIME (timezone = True )),
218218 Column ("timestamp" , sa .TIMESTAMP ),
219219 Column ("timestamp_tz" , sa .TIMESTAMP (timezone = True )),
220220 Column ("date" , sa .Date ),
@@ -260,33 +260,35 @@ def test_datetime_types(self, connection: sa.Connection):
260260 )
261261
262262 result = connection .execute (stmt ).fetchone ()
263- assert result == (b"Timestamp " , b"Datetime" , b"Timestamp" )
263+ assert result == (b"Datetime " , b"Datetime" , b"Timestamp" )
264264
265265 def test_datetime_types_timezone (self , connection : sa .Connection ):
266266 table = self .tables .test_datetime_types
267+ tzinfo = datetime .timezone (datetime .timedelta (hours = 3 , minutes = 42 ))
267268
268- now_dt = datetime .datetime .now ()
269- now_dt_tz = now_dt .replace (tzinfo = datetime .timezone (datetime .timedelta (hours = 3 , minutes = 42 )))
270- today = now_dt .date ()
269+ timestamp_value = datetime .datetime .now ()
270+ timestamp_value_tz = timestamp_value .replace (tzinfo = tzinfo )
271+ datetime_value = timestamp_value .replace (microsecond = 0 )
272+ datetime_value_tz = timestamp_value_tz .replace (microsecond = 0 )
273+ today = timestamp_value .date ()
271274
272275 statement = sa .insert (table ).values (
273- datetime = now_dt ,
274- datetime_tz = now_dt_tz ,
275- timestamp = now_dt ,
276- timestamp_tz = now_dt_tz ,
276+ datetime = datetime_value ,
277+ datetime_tz = datetime_value_tz ,
278+ timestamp = timestamp_value ,
279+ timestamp_tz = timestamp_value_tz ,
277280 date = today ,
278281 # interval=datetime.timedelta(minutes=45),
279282 )
280283 connection .execute (statement )
281284
282285 row = connection .execute (sa .select (table )).fetchone ()
283286
284- now_dt_tz_utc = now_dt .replace (tzinfo = datetime .timezone .utc ) - datetime .timedelta (hours = 3 , minutes = 42 )
285287 assert row == (
286- now_dt ,
287- now_dt_tz_utc , # YDB doesn't store timezone, so it is always utc
288- now_dt ,
289- now_dt_tz_utc , # YDB doesn't store timezone, so it is always utc
288+ datetime_value ,
289+ datetime_value_tz . astimezone ( datetime . timezone . utc ) , # YDB doesn't store timezone, so it is always utc
290+ timestamp_value ,
291+ timestamp_value_tz . astimezone ( datetime . timezone . utc ) , # YDB doesn't store timezone, so it is always utc
290292 today ,
291293 )
292294
0 commit comments