C# 将字符串转换为日期时间 (AM : PM)

4 人关注

在我的应用程序中,有一个文本框用来输入时间(小时和分钟)和上午下午。 在数据库中,该文本框的相关字段是 "Times",它的数据类型是DateTime。

string times = "06:45 AM";

转为Sql-Server的DateTime (YYYY-MM-DD HH:mm:ss)

如何将输入表格的文本框转换成数据库?

3 个评论
那么,那一天的时间是什么?
当前时间。(今天是他/她的输入)。
@azalikaEriya,请勾选Rufus L的答案,这样会有更多人找到正确答案。谢谢。
c#
string
sql-server-2008
datetime
azalikaEriya
azalikaEriya
发布于 2015-01-15
3 个回答
Rufus L
Rufus L
发布于 2021-04-27
0 人赞同
var date = DateTime.Parse("06:45 AM");
Console.WriteLine(date);
    
正确的答案,只是要补充的是--这将给出今天的日期和那个时间,所以如果他想要另一个日期,他需要指定它。
对于OP的 CurrentCulture ,不保证有 HH:mm tt ,作为标准的日期和时间格式。最好指定一个 IFormatProvider ,例如 InvariantCulture
@azalikaEriya "没有工作 "是什么意思?它在屏幕上输出 "I DON'T WORK "吗?
屏幕上显示 "ERROR System.Data.SqlClient.SqlException(0x80131904)。将varchar数据类型转换为datetime数据类型的过程中,产生了一个超出范围的值。该语句已被终止。" @zerkms
你能用你使用的代码来更新你的问题,以便我们能尝试帮助你吗?
Soner Gönül
Soner Gönül
发布于 2021-04-27
0 人赞同

Sql Server的 datetime 类型总是有日期和时间部分。

如果你想插入这个小时部分与 Today "的日期,你可以直接解析这个 string Datetime ,你可以插入这个 DateTime 到你的数据库。比如。

string times = "06:45 AM";
DateTime dt;
if(DateTime.TryParseExact(times, "HH:mm tt", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
    //dt will be 15/01/2015 06:45:00 and insert this DateTime directly