可以将字符串日期转换为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吗?的主要内容,如果未能解决你的问题,请参考以下文章
NHibernate 无法将 MySQL 日期/时间值转换为 System.DateTime
无法将 MySQL 日期/时间值转换为 System.DateTime