1

如何通过查询插入这样的日期?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','-','-','-','-','-','-','-','-','-','-');

怎么了?

4

3 回答 3

2

尝试这个:

INSERT INTO TABLE (FIELD) VALUES CONVERT(DATETIME, '2015-06-02T11:18:25.000', 126)

126 与 ISO8601 相关,格式为yyyy-mm-ddThh:mi:ss.mmm.

这与字符串的格式相同'2015-06-02T11:18:25.000'

有关详细信息,请参阅此处

对于带有 datetimeoffset 的日期(例如'2015-06-02T11:14:06+02:00'- 请注意+02:00末尾的),您必须这样做:

CONVERT(DATETIME, CONVERT(DATETIMEOFFSET,'2015-06-02T11:14:06+02:00'), 127)

完全固定的查询应该是:

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, CONVERT(DATETIMEOFFSET,'2015-06-02T11:14:06+02:00'), 127),'-','false','-','-','19','9790.00','1','BK994P','-','-','null','null','null','null','null','null','null','null','null','-','-','-','-','-','-','-','-','-','-');
于 2015-06-05T00:06:59.060 回答
1

你需要一个格式。在这种情况下,126:

INSERT INTO TABLE (FIELD)
    VALUES (convert(datetime,'2015-06-02T11:18:25.000', 126))

清单在这里

对于时区,您需要 127,因此您需要修复您的values子句:

('4','5234','-',
    convert(datetime,'2015-06-02'),convert(datetime,'2015-06-02T11:18:25.000',127),'30020','20230','null','null','4','1','391','50','50','50','500',convert(datetime,'2015-06-02T11:14:06+02:00',127),'-','false','-','-','19','9790.00','1','BK994P','-','-','null','null','null','null','null','null','null','null','null','-','-','-','-','-','-','-','-','-','-');
于 2015-06-05T00:07:10.647 回答
1

试试这个。它对我有用。

  if(isset($_POST['buttonsave']))
    {
        $vfidperiodo      = preg_replace('#[^A-Za-z0-9]#i','',$_POST['idperiodo']);
        $vfperiodo        =  ms_escape_string($_POST['periodo']);
        $vffechainicio    =  $_POST['fecha_inicio'];



        $query_in="INSERT INTO iperiodos (idperiodo, periodo, fecha_inicio)
            VALUES ('".$vfidperiodo."','".$vfperiodo."','".$vffechainicio."')";


        $sql_in = sqlsrv_query($conn,$query_in);
       if ($sql_in) // Se eejectuto la sentencia SQL?
                  {
          echo "SQLSuccess"; // Mensaje Afirmativo.
                  } else {
         die( print_r( sqlsrv_errors(), true)); // Causa del error.       
                  }
         exit();
    }

这是数据库和表单图像。

在此处输入图像描述 在此处输入图像描述

于 2015-06-05T02:29:09.603 回答