diff --git a/src/Database/Schema/SqlserverSchema.php b/src/Database/Schema/SqlserverSchema.php index 8c3ec7fe972..2a09854c29e 100644 --- a/src/Database/Schema/SqlserverSchema.php +++ b/src/Database/Schema/SqlserverSchema.php @@ -407,7 +407,14 @@ public function columnSql(Table $table, $name) unset($data['default']); } - if (isset($data['default']) && $data['type'] !== 'datetime') { + if (isset($data['default']) && + in_array($data['type'], ['timestamp', 'datetime']) && + strtolower($data['default']) === 'current_timestamp' + ) { + $out .= ' DEFAULT CURRENT_TIMESTAMP'; + unset($data['default']); + } + if (isset($data['default'])) { $default = is_bool($data['default']) ? (int)$data['default'] : $this->_driver->schemaValue($data['default']); $out .= ' DEFAULT ' . $default; } diff --git a/tests/TestCase/Database/Schema/SqlserverSchemaTest.php b/tests/TestCase/Database/Schema/SqlserverSchemaTest.php index 83926255b2b..b5ff0c27bf3 100644 --- a/tests/TestCase/Database/Schema/SqlserverSchemaTest.php +++ b/tests/TestCase/Database/Schema/SqlserverSchemaTest.php @@ -628,6 +628,16 @@ public static function columnSqlProvider() ['type' => 'datetime'], '[created] DATETIME' ], + [ + 'open_date', + ['type' => 'datetime', 'null' => false, 'default' => '2016-12-07 23:04:00'], + '[open_date] DATETIME NOT NULL DEFAULT \'2016-12-07 23:04:00\'' + ], + [ + 'open_date', + ['type' => 'datetime', 'null' => false, 'default' => 'current_timestamp'], + '[open_date] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP' + ], // Date & Time [ 'start_date',