2015-01-20 77 views
1

我正在从一个目录中获取文件名列表的程序,然后将文件名解析为单个变量(字符串)并将其转换为可以提交给mysql数据库的内容,稍后将排队等候搜索。可能将字符串日期转换为mysql DateTime?

在那些文件名中包含4位数年份,2位数日,2位数月份,2位数小时和4位数分钟(## AM/PM),后面跟着2个数字,可以是3到11位数字。

我已解析文件名并将日期和时间信息格式化为以下字符串:YYYY/DD/MM HH:MMAM或YYYY/DD/MM HH:MMPM(仅“AM”和“PM” )。

EX: 2014/24/12下午2点50分

我怎么能转换成字符串日期时间提交到MySQL数据库。

回答

2

内置的STR_TO_DATE()功能可以满足您的需求。

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

给出你需要的结果。您可以查看format codes here

1

使用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()); 
+0

当我提交DT到数据库,它提出:0000-00-00 00:00:00 – Meta 2015-01-20 23:51:14

+0

你的mySQL数据库接受的日期格式是什么?你可以根据需要在ToString方法的参数中进行转换,例如:'dt.ToString(“yyyy-MM-dd HH:mm”)' – denvercoder9 2015-01-21 00:23:48