【问题标题】:Convert datetime to smalldatetime in sql insert query在 sql 插入查询中将 datetime 转换为 smalldatetime
【发布时间】:2016-02-17 03:19:49
【问题描述】:

我有一个这样的 INSERT 查询

INSERT INTO tna_temp_attendance VALUES('" + strEmpCode + "', CONVERT(SMALLDATETIME, '" + dtDateTime.ToString() + "'), 0, " + _inOutMode.ToString() + ", null, 0, 'CHO-', '" + strMachine + "')

当我执行这个查询时发生了这个错误 "将 varchar 数据类型转换为 datetime 数据类型导致值超出范围"

请帮忙

我的数据库有这个表“tna_temp_attendance” 它的列是

  • Emp_id char(6)
  • Wdate smalldatetime
  • Is_read
  • Machine_Status
  • Process_Status
  • Is_Error
  • Lo​​c_no char(4)
  • IP varchar(16)

编辑

我也这样过了日期

CONVERT(SMALLDATETIME, '" + Convert.ToDateTime(dtDateTime.ToString("yyyy-MM-dd hh:mm:ss")) + "')

但它也不起作用

【问题讨论】:

  • 请您再解释一下,
  • 请提供将作为 sql 命令运行的最终字符串
  • 最后的字符串被命名为dtDateTime

标签: c# sql datetime sql-insert smalldatetime


【解决方案1】:

我终于做到了。 我声明了一个字符串。

  • 字符串 dt = DateTime.Now.ToString();

然后将其转换为日期时间

DateTime ndt = Convert.ToDateTime(dt);

然后我用了

CONVERT(SMALLDATETIME, CONVERT(DATETIME, '" + ndt + "'))

而且它奏效了。谢谢大家

【讨论】:

    【解决方案2】:

    尝试使用 ISO 格式将日期插入 SQL server,如下所示:

    dtDateTime.ToString("yyyyMMdd")
    

    【讨论】:

    • 先生,我需要插入日期和时间,是否可以使用“yyyyMMdd hh:mm:ss”格式
    • 是的,你可以使用它。
    • 但它不起作用,当我使用 CONVERT(smalldatetime, '2015-01-01 08:11:01') 它工作正常,我需要传递我的日期变量而不是 '2015 -01-01 08:11:01'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    相关资源
    最近更新 更多