【问题标题】:Insert time in time(7) data type SQL Server插入时间 (7) 数据类型 SQL Server
【发布时间】:2018-10-01 23:51:53
【问题描述】:

我无法在 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),>)

【问题讨论】:

  • 尝试将日期和时间值放在单引号中。所以你的价值 12-03-2019 变成 '12-03-2019' 和 12:03:20 变成 '12:03:20'
  • 从字符串转换日期和/或时间时转换失败。
  • 以 YYYY-MM-DD 格式输入日期文字是最安全的,因为这是明确的。尝试将日期更改为“2019-03-12”和“2019-04-14”
  • 错误是一样的

标签: sql-server date time


【解决方案1】:

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

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

如果没有引号,它们将被视为纯数字表达式。 12-03-2019 被解释为 12 减 3 减 2019。然后解析器在 12:03:20 到达冒号时会感到困惑。

【讨论】:

    【解决方案2】:

    尝试用引号插入值。此外,如果您尝试以 dd/mm/yyyy 格式插入日期,则需要向 SQL 服务器引擎提供提示。

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

    1. DMY – dd/MM/yyyy。例如2018 年 12 月 4 日。

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

    3. MDY – 月/日/年。例如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')
    

    【讨论】:

    • 这救了我,我爱你,但是……我不明白为什么这会奏效,当我尝试使用引号时它不起作用
    • 可能你当时没有设置 DATFORMAT。
    • 如果我在表格中设置 12-03-2019,它显示 12/3/2019 是否可以在当月添加零?
    • 你在哪里看到 2019 年 12 月 3 日,插入记录后,它看起来像我添加到答案中的图像。我没明白你的意思。
    • 对不起,表格是正确的,我对我在正在制作的 vb 程序中获得的数据感到困惑,当我运行 sql 命令时,我的表格得到的日期没有零
    猜你喜欢
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多