我想以两种方式插入日期和时间,如下所示:
表:ft
create table ft
(
columndate datetime,
columntime datetime
)
插入记录:格式1
insert into ft values('2014-12-25', '01:55:56');
插入记录:格式2
insert into ft values('25-12-2014', '01:45:54');
注意:是的!当然我想只插入columndate
的第一列的日期和columntime
的第二列的时间,并且我想使用datetime
数据类型。对于两种插入格式,我得到的错误如下所示:
错误:
将varchar数据类型转换为日期时间数据类型会导致超出范围的值。
答案 0 :(得分:3)
这完全取决于转换和数据类型。
首先,隐式转换很危险。要知道,请看一下这个链接:How does SQL Server decide format for implicit datetime conversion?
我通常使用以下格式:' YYYYMMDD HH:mm:ss'
仅存储当天不是问题,但正如评论中所建议的那样,我建议使用日期类型和时间类型。
无法在datetime类型中存储唯一时间。如果出于任何原因,你真的需要这样做,你必须在过去做的事情,比如datetime是唯一可用的类型,并用默认日期插入你的时间,如19000101。
此:
insert into ft values('2014-12-25', '01:55:56');
将会是这样的:
insert into ft values('20141225', '19000101 01:55:56');