将日期时间从Excel格式转换为SQL格式
本文关键字:格式 转换 SQL Excel 日期 时间 | 更新日期: 2023-09-27 18:32:06
我正在从 Excel 读取值并将读取行插入到 SQL,但我遇到了日期列的问题。
从Excel中,我正在读取日期23-08-2011 01:33:01
,但是在数据库中,这些值存储为2011-08-22 10:21:18.000
。
有没有办法在 C#(而不是 T-SQL)中将我正在读取的日期转换为yyyy-mm-dd 00:00:00:000
格式?我想将23-08-2011 01:33:01
转换为2011-08-23 00:00:00:000
。
- 使用
DateTime.ParseExact
将 Excel 字符串解析为对象DateTime
- 使用
String.Format
和适当的格式字符串将对象格式化为 SQL 格式DateTime
。
有关如何创建日期时间格式字符串的指南,请参阅以下两个资源:
标准日期和时间格式字符串
自定义日期和时间格式字符串
DateTime excel = DateTime.ParseExact("23-08-2011 01:33:01", "dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture);
String sqlString = String.Format("{0:yyyy-MM-dd hh:mm:ss:ffff}", excel);
使用 DateTime
中的 ParseExact
方法
DateTime parsedDate = DateTime.ParseExact("23-08-2011 01:33:01",
"dd-MM-yyyy hh:mm:ss", CultureInfo.InvariantCulture);
根据插入记录的方式,您应该能够使用 DateTime 对象,否则可以将其存储为字符串:
string sqlDate = parsedDate.ToString("yyyy-mm-dd hh:mm:ss:fff");
string dateString = "23-08-2011 01:33:01";
string format = "dd-MM-yyyy hh:mm:ss";
DateTime date = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);
string again = date.ToString("yyyy-MM-dd 00:00:00:000");