在time(7)数据类型SQL Server中插入时间

时间:2018-10-01 23:51:54

标签: sql-server date time

我无法在SQL Server中为TIME(7)列插入值:

INSERT INTO [dbo].[Vuelos] ([fechaSalida], [horasalida], [fechaLlegada], [horaLlegada],
                            [id_avion], [idAereopuertoOrigen],[idAereopuertoDestino], [estado])
 VALUES (12-03-2019, 12:03:20, 14-4-2019, 03:12:33,
         3, 2, 3, 'Disponible')

我遇到错误

  

“:”附近的语法不正确。

在第一个日期行

表结构为:

       (<fechaSalida, date,>
       ,<horasalida, time(7),>
       ,<fechaLlegada, date,>
       ,<horaLlegada, time(7),>
       ,<id_avion, int,>
       ,<idAereopuertoOrigen, int,>
       ,<idAereopuertoDestino, int,>
       ,<estado, varchar(50),>)

2 个答案:

答案 0 :(得分:0)

您需要将日期和时间值放在引号中以使其成为字符串。

 VALUES
       ('12-03-2019'
       ,'12:03:20'
       ,'14-4-2019'
       ,'03:12:33'

不带引号的情况下,将它们视为纯数字表达式。 12-03-2019被解释为12减去3减去2019。然后解析器在12:03:20到达冒号时会感到困惑。

答案 1 :(得分:0)

尝试插入带引号的值。另外,如果您尝试以dd / mm / yyyy格式插入日期,则需要向SQL Server引擎提供提示。

DATEFORMAT允许我们以所需格式插入日期。 不同的日期格式选项是:

  1. DMY-dd / MM / yyyy。例如12/04/2018。

  2. YDM-yyyy / dd / MM。例如2018/12/04。

  3. MDY-MM / dd / yyyy。例如2018年4月14日。

  4. YMD – yyyy / MM / dd。例如2018/04/14。

See More Here

    SET DATEFORMAT DMY INSERT INTO [dbo].[Vuelos]
       ([fechaSalida]
       ,[horasalida]
       ,[fechaLlegada]
       ,[horaLlegada]
       ,[id_avion]
       ,[idAereopuertoOrigen]
       ,[idAereopuertoDestino]
       ,[estado]) VALUES
       (
       '12-03-2019'
       ,'12:03:20'
       ,'14-4-2019'
       ,'03:12:33'
       ,3
       ,2
       ,3
       , 'Disponible')

Record after insert