เป็นเพราะว่า SQL Server ได้มีการ upgrade datetime เป็น datetime2 โดยมีการเก็บข้อมูลที่ละเอียดขึ้น แต่บางครั้งกลับใช้พื้นที่ในการเก็บข้อมูลน้อยลง ดังนั้นถ้าเป็นไปได้จึงควร upgrade เป็น datetime2
alter_table_set_column_type_datetime_to_datetime2.sql
SELECT
DB_NAME () AS DatabaseName,
s.name AS SchemaName,
t.name AS TableName,
'ALTER TABLE ' + QUOTENAME (DB_NAME ()) + '.' + QUOTENAME (s.name) + '.' + QUOTENAME (t.name) +
' ALTER COLUMN ' + QUOTENAME (c.name) + ' datetime2 (2) ;' AS alter_sql
FROM
sys.columns AS c
JOIN
sys.tables AS t ON c.object_id = t.object_id
JOIN
sys.schemas AS s ON t.schema_id = s.schema_id
JOIN
sys.types AS ty ON c.user_type_id = ty.user_type_id
WHERE
ty.name = 'datetime';
อ่านเพิ่มเติม