【发布时间】:2015-08-19 19:06:21
【问题描述】:
如何在查询中插入这样的日期? 2015-06-02T11:18:25.000
我试过这个:
INSERT INTO TABLE (FIELD) VALUES (convert(datetime,'2015-06-02T11:18:25.000'))
但我已经回来了:
Conversion failed when converting date and/or time from character string.
我也试过了:
CONVERT(DATETIME, '2015-06-02T11:18:25.000', 126)
但它不起作用:
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.
整个查询是:
INSERT INTO BOLLE_TEST_POPPER (QIDDIADE,QNUMBOLLA,QSELEZIONALE,QDATA,QORA,QPRIMAPESATA,QSECONDAPESATA,QIMP1,QIMP2,QIDCAUSALE,QIDCLIENTE,QIDDESTINAZIONE,QIDVETTORE,QIDSUBVETTORE,QIDCAMION,QORATRASITO,QNUMBOLLAINGRESSO,QDATABOLLAINGRESSO,QCOMMITTENTIDELTRASPORTO,QANNOTAZIONI,QANNOTAZIONIINBOLLA,QIDARTICOLO,QQANTITA,QIDAUTISTA,QNUMTESSERA,QNUMGETTONE,VALORETAB1,VALORETAB2,VALORETAB3,VALORETAB4,VALORETAB5,VALORETAB6,VALORETAB7,VALORETAB8,VALORETAB9,VALORETAB10,VALORETESTO1,VALORETESTO2,VALORETESTO3,VALORETESTO4,VALORETESTO5,VALORETESTO6,VALORETESTO7,VALORETESTO8,VALORETESTO9,VALORETESTO10) VALUES ('4','5234','-',
convert(datetime,'2015-06-02'),convert(datetime,'2015-06-02T11:18:25.000',126),'30020','20230','null','null','4','1','391','50','50','50','500',convert(datetime,'2015-06-02T11:14:06+02:00',126),'-','false','-','-','19','9790.00','1','BK994P','-','-','null','null','null','null','null','null','null','null','null','-','-','-','-','-','-','-','-','-','-');
怎么了?
【问题讨论】:
-
表格列的数据类型是什么?什么版本的 SQL Server。不需要转换函数。
-
您可能将注意力集中在 INSERT 中的错误列上。我会高度怀疑您尝试插入字符串
'null'而不是非值null的那些列(注意,没有引号)。这些列的数据类型是什么? (当然,如果您发布了整个表定义会更容易) -
此外,作为一般数据建模技巧 - 如果您发现自己创建了除数字后缀之外的相同列,这通常表明应该将这些数据拆分到单独的表中并使用单独的行而不是存储值的列(这很有帮助,因为您有时需要查询所有此类数据,如果所有数据都在单个列中,这会更容易。此外,您不必将自己限制为 10 个值)跨度>
标签: sql sql-server datetime datetime-format sqldatetime