可以将字符串日期转换为mysql DateTime吗?

Posted

技术标签:

【中文标题】可以将字符串日期转换为mysql DateTime吗?【英文标题】:Possible to convert string date to mysql DateTime? 【发布时间】:2015-03-19 07:16:05 【问题描述】:

我正在开发一个程序,该程序从目录中获取文件名列表,然后将文件名解析为单个变量(字符串)并将其转换为可以提交到 mysql 数据库的东西,该数据库稍后将排队用于搜索。

在这些文件名中,包含 4 位数的年份、2 位数的日期、2 位数的月份、2 位数的小时和 4 位数的分钟 (##AM/PM),后跟 2 个可以介于 3 到 11 位数之间的数字。

我已解析文件名并将日期和时间信息格式化为以下字符串:YYYY/DD/MM HH:MMAM 或 YYYY/DD/MM HH:MMPM(只有“AM”和“PM”在分钟内发生变化) .

前: 2014/24/12 02:50PM

如何将字符串转换为 DateTime 以提交到 MySql 数据库。

【问题讨论】:

【参考方案1】:

内置的STR_TO_DATE() 函数可以满足您的需要。

STR_TO_DATE('2014/24/12 02:50PM', '%Y/%d/%m %h:%i%p') 

给出你需要的结果。你可以查一下format codes here。

【讨论】:

【参考方案2】:

使用 DateTime.ParseExact 可以将其放入 .net 的 DateTime 对象中:

        string s = "2014/24/12 02:50PM";
        DateTime dt;
        DateTime.TryParseExact(s, "yyyy/dd/MM hh:mmtt", new CultureInfo("en-US"), DateTimeStyles.None, out dt) ;
        Console.WriteLine(dt.ToString());

【讨论】:

当我将dt提交到数据库时,它提交为:0000-00-00 00:00:00 您的 mySQL 数据库接受的日期格式是什么?您可以在 ToString 方法的参数中根据需要进行转换,例如:dt.ToString("yyyy-MM-dd HH:mm")

以上是关于可以将字符串日期转换为mysql DateTime吗?的主要内容,如果未能解决你的问题,请参考以下文章

mysql日期范围查找(两个日期之间的记录)

NHibernate 无法将 MySQL 日期/时间值转换为 System.DateTime

无法将 MySQL 日期/时间值转换为 System.DateTime

翩翩。将字符串转换为日期和日期转换为整数。

MySQL 脚本将 DateTime.Ticks 值转换为 SQL Date

MySQL将日期字符串转换为Unix时间戳