【问题标题】:C# Convert String to DateTime (AM : PM)C# 将字符串转换为日期时间(上午:下午)
【发布时间】:2021-04-27 12:20:03
【问题描述】:

我的应用程序中有一个文本框,用于输入时间(小时和分钟)和 AM PM。 在数据库中,该文本框的相关字段是“Times”,其数据类型为 DateTime

string times = "06:45 AM";

到 Sql-Server 的日期时间 (YYYY-MM-DD HH:mm:ss)

如何将输入表单文本框转换为数据库?

【问题讨论】:

  • 那是哪一天的时间?
  • 当前时间。(今天作为他/她输入)
  • @azalikaEriya,请勾选 Rufus L 答案,以便更多人找到正确答案。谢谢。

标签: c# string sql-server-2008 datetime


【解决方案1】:
var date = DateTime.Parse("06:45 AM");
Console.WriteLine(date);

【讨论】:

  • 正确答案,只是补充一下 - 这将给出今天的日期和那个时间,所以如果他想要另一个日期,他需要指定它。
  • 不保证 OP 的 CurrentCultureHH:mm tt 作为标准日期和时间格式。最好指定一个IFormatProvider,例如InvariantCulture
  • @azalikaEriya “没用”是什么意思?它是否在屏幕上输出“I DON'T WORK”?
  • 屏幕显示“错误 System.Data.SqlClient.SqlException (0x80131904):将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。该语句已终止。” @zerkms
  • 您能否使用您正在使用的代码更新您的问题,以便我们尝试提供帮助?
【解决方案2】:

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
}

【讨论】:

  • 在我的数据库中日期时间格式类似于 2015-01-15 06:06:06.000。我用你的可以吗?
  • @azalikaEriya A DateTime 没有 any 隐式格式。它只有日期和时间值。 String 表示 DateTime 可以具有格式。是的,可以使用这个 dt 值插入您的 datetime 类型列。
  • 那么,在插入语句中我只是调用 dt ?
  • @azalikaEriya 是的,直接将这个dt 值传递给你的parameterized 插入语句。
  • @azalikaEriya 不起作用 不是一个有用的解释。 现在工作到底是什么?如果您有不同的问题,您应该单独提出一个问题。
【解决方案3】:

试试这个。

   TimeSpan theTime = DateTime.Parse("06:45 AM").TimeOfDay;

【讨论】:

    猜你喜欢
    • 2014-07-08
    • 2020-06-30
    • 2015-11-22
    • 1970-01-01
    • 2012-01-10
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多