在 sql 插入查询中将 datetime 转换为 smalldatetime
Posted
技术标签:
【中文标题】在 sql 插入查询中将 datetime 转换为 smalldatetime【英文标题】:Convert datetime to smalldatetime in sql insert query 【发布时间】: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 位 Loc_no char(4) IP varchar(16)编辑
我也这样过了日期
CONVERT(SMALLDATETIME, '" + Convert.ToDateTime(dtDateTime.ToString("yyyy-MM-dd hh:mm:ss")) + "')
但它也不起作用
【问题讨论】:
请您再解释一下, 请提供将作为 sql 命令运行的最终字符串 最后的字符串被命名为dtDateTime 【参考方案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'以上是关于在 sql 插入查询中将 datetime 转换为 smalldatetime的主要内容,如果未能解决你的问题,请参考以下文章
在查询中将 DateTime.Ticks 转换为 MySQL DateTime
在 C# 中将字符串转换为 DateTime 并写入 SQL
在 SQL Server 中将 varchar 转换为 datetime [重复]
在 SQL 中将 DateTime 转换为“n Hours Ago”的最佳方法