数据库提示:
Conversion failed when converting date and/or time from character string.
The statement has been terminated.
也就是
转换日期和/或时间从字符串转换失败。
该声明已终止。
经过调查,错误的原因在于Exel中的日期格式是错误的,虽然看起来是日期格式,比如9/1/2018,但如果转成text格式你就会发现,它变成了44334.
因为表不是我创建的,我不知道为什么会发生这个事情,这个44334很明显是当前日期也就是9/1/2018减去1/1/1900的天数,我能做的就是在数据库中把这个数据转成日期,以我这种道行大概知道了应该怎么转换,但是做是做不出来的,研究出来估计得两天。
然后我们组的神级人物出现了。
update [dbo].[Sheet]
set LOD = DATEADD(day,cast(LOD as int) - 2,'1900/1/1')
where LOD is not null
LOD为字段名,Sheet为表名
也可以先select一下,确认这个格式没有问题,和转换以后的日期是一样的。
然后就可以把字段转换成日期格式了。
alter table Sheet alter column LOD DateTime;
膜拜大神,给跪。
数据库提示:Conversion failed when converting date and/or time from character string.The statement has been terminated.也就是转换日期和/或时间从字符串转换失败。该声明已终止。经过调查,错误的原因在于Exel中的日期格式是错误的,虽然看起来是日期格式,比如9/1/2018,但如果转...
将
excel 表
导入 my
sql 时,
时间字段格式问题解决
问题背景:将
excel 数据
导入 my
sql 数据库时,
时间字段显示为一串数字
解决方案:对
excel 中
时间列进行格式修改解决
excel 测试表数据
数据库表数据结构,字段保证一一对应,不然会
导入失败
对
excel 表进行一下操作
问题描述:
SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: 从字符串转换日期和/或时间时,转换失败。 Msg 241, Level 16, State 1, 从字符串转换日期和/或时间时,转换失败。
问题分析:
1、在SQL Server中datetime类型的值跟varchar类型的值比较,会将varchar类型的值先转为datetime类型,这样会报错。
select * from t_users where 1=1
通过navicat12倒出数据,文件格式是xls,但在xls修改完数据后再往
数据库便
导入便报错。此外因为数据量很大,超过24万条数据,但xls格式导出的内容只有6万多数据。不过最后还是解决了。
碰到的问题有:
xls数据行数支持不足
xlsx和xls使用vlookup函数后报错,找不到对应数据(因为表格上是由绿色三角
主键约束问题
xlsx格式中
日期与
数据库中datatime格式不符合
sqlserver自增长列标识
导入的时候报错【这个是最坑的一切的源头!
1.xls数据行数支持不足
1.报错内容:
(241, b'Conversion failed when converting date and/or time from character string.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n')
2.报错原因:
时间字段的类型错误或时间字段为None,不能直接插入
1.正确的类型<class ‘da
EXCEL导入,
时间格式处理问题
有时候会出现电脑
时间设置不是
数据库标准的
时间格式(标准格式:yyyy-MM-dd HH:mm:ss.fff),存入
数据库会提示
时间格式不正确
解决方案:在最后的
SQL赋值时,将
时间字段(tm.BuildDate.ToString(“yyyy-MM-dd”))转换为字符串格式
如果数据比较少,一点一点录入到数据库中也不费什么时间,但是数据比较多,要花费的时间也比较多,有可能会耗费二十几或三十几分钟的时间。在SQL Server中导入excel数据是非常节省时间、提高效率的一种方法,是聪明人的选择。
1、打开SQL Server在新建的数据库的【表】上新建一个表,配置好列属性。
2、选择并右击新建的数据库,点击【任务】,然后选择并点击【导入数据】。
3、弹出SQL Server导入和导出向导窗口,点击【下一步】。
4、数据源选择excel文件路径选择需要导入的.
要实现Winform窗体中的Excel表导入MySQL数据库,可以按照以下步骤进行:
1. 在Winform窗体中添加一个控件用于选择Excel文件,例如OpenFileDialog控件。
2. 使用ExcelDataReader库读取Excel文件中的数据。该库支持读取多种格式的Excel文件,包括xls和xlsx格式。
3. 连接到MySQL数据库,可以使用MySQL Connector/NET库实现。
4. 将读取到的Excel数据转换为MySQL数据库中对应的数据类型,并插入到MySQL数据库中。
以下是一个简单的示例代码:
```csharp
private void btnImport_Click(object sender, EventArgs e)
// 选择Excel文件
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
if (dialog.ShowDialog() != DialogResult.OK) return;
// 读取Excel文件
using (var stream = File.Open(dialog.FileName, FileMode.Open, FileAccess.Read))
using (var reader = ExcelReaderFactory.CreateReader(stream))
// 获取第一个工作表
reader.Read();
var dataTable = reader.AsDataSet().Tables[0];
// 连接到MySQL数据库
var connectionString = "server=localhost;user id=root;password=123456;database=test";
using (var connection = new MySqlConnection(connectionString))
connection.Open();
var command = connection.CreateCommand();
// 生成插入SQL语句
var sql = new StringBuilder();
sql.Append("INSERT INTO table_name (column1, column2, column3) VALUES ");
for (int i = 1; i < dataTable.Rows.Count; i++)
sql.AppendFormat("('{0}', '{1}', '{2}'), ", dataTable.Rows[i][0], dataTable.Rows[i][1], dataTable.Rows[i][2]);
sql.Remove(sql.Length - 2, 2); // 移除最后一个逗号和空格
command.CommandText = sql.ToString();
// 执行SQL语句
command.ExecuteNonQuery();
其中,`table_name`表示要插入数据的MySQL数据库表名称,`column1`、`column2`、`column3`表示Excel表中对应的列名。根据实际情况修改即可。