sql server - TSQL DEFAULT CURRENT_TIMESTAMP -
i have following table
create table t3 ( dd datetime default current_timestamp ) when start insert rows t3 via this:
insert t3 select 1; i
1900-01-02 00:00:00.000 1900-01-02 00:00:00.000 1900-01-02 00:00:00.000 1900-01-02 00:00:00.000 why values in year 1900 ?
i using sql server express 2012 . clock on machine current .
your insert t3 without explicit column list expect source of values insert contains value every column in table except identity/rowversion or computed columns.
your table has single such column , select statement source supplies 1 column. result inserting explicit integer value 1 column dd.
that column's datatype datetime requiring implicit cast. result of select cast(1 datetime) 1900-01-02 hence results see.
the legacy datetime datatypes allow implicit casts int , float , treat numeric values days since 1900-01-01. newer datatypes such datetime2 not support these implicit cast , raise error instead.
default constraint values applied when don't insert explicit value column.
in case can either
insert t3 default values; or
insert t3 (dd) values (default)
Comments
Post a Comment