From 80ce23f6fd0f14ab656d3ec82773bd0cffbd4791 Mon Sep 17 00:00:00 2001 From: Jacobo de Vera Date: Fri, 13 Nov 2015 16:57:41 +0100 Subject: [PATCH] Pass precision value to mssql.DATETIME2 when it is 0 The simple check on the precision results in DATETIME2(0) generating a DATETIME2 column, with default precision, which is 7. --- lib/sqlalchemy/dialects/mssql/base.py | 2 +- test/dialect/mssql/test_types.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 37e798014c..9e39ca9f28 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -773,7 +773,7 @@ class MSTypeCompiler(compiler.GenericTypeCompiler): def visit_DATETIME2(self, type_, **kw): precision = getattr(type_, 'precision', None) - if precision: + if precision is not None: return "DATETIME2(%s)" % precision else: return "DATETIME2" diff --git a/test/dialect/mssql/test_types.py b/test/dialect/mssql/test_types.py index e782bd5e59..d8a82630b8 100644 --- a/test/dialect/mssql/test_types.py +++ b/test/dialect/mssql/test_types.py @@ -464,6 +464,8 @@ class TypeRoundTripTest( (mssql.MSDateTime2, [], {}, 'DATETIME2', ['>=', (10,)]), + (mssql.MSDateTime2, [0], {}, + 'DATETIME2(0)', ['>=', (10,)]), (mssql.MSDateTime2, [1], {}, 'DATETIME2(1)', ['>=', (10,)]), -- 2.47.2