【问题标题】:Convert String to Datetime in dd.MM.yyyy format without hours C#将字符串转换为 dd.MM.yyyy 格式的日期时间,无需小时 C#
【发布时间】:2014-07-29 11:02:42
【问题描述】:

我搜索了整个网站和 Google,但找不到我真正需要的东西。我正在尝试在两个日期之间从 SQL Server DB 中选择记录(DB 列是日期格式而不是日期时间)。我从两个文本框(21.8.2014 格式)中获取日期,查询是BirthDay >= dateTxt1 AND BirthDay<=dateTxt2 dateTxt1 和 dateTxt2 应该是 DateTime 而不是字符串。 请不要让我使用 ToShortDateTimeString("dd.MM.yyyy")。我想要这样的东西:

DateTime ddateTxt1 =Convert.toDateTime(TextBox1.Text, "dd.MM.yyyy");

这可能吗?输出应该像 21.8.2014,而不是像 21.8.2014 00:00:00 如何从 TextBox 中获取值并将其转换为 DateTime 并进行查询。

我尝试过 belov 代码,但没有成功:

CultureInfo provider = CultureInfo.InvariantCulture;        

DateTime theDateTime = DateTime.ParseExact(TextBox1.Text, "d.MMMM.yyyy", provider);

谢谢

【问题讨论】:

  • 问题出在哪里还不是很清楚。来自TextBox1 的用户输入是否包括小时/分钟/秒?你是如何输出这个值的? DateTime 值被格式化为 output,不一定是 input。 DateTime 值本身只是数据,它没有格式或文化信息。您在哪里看到这些您不想要的小时/分钟/秒值?
  • 除了之前的评论要求;你是如何查询数据库的?它是哪个版本的 SQL?
  • SQL server 2012 - 我的查询是:"Select * From db Where Active=true ANDbirthDay >= dateTextBox1 ANDbirthDay

标签: c# sql date datetime converter


【解决方案1】:

你可以试试这个:

DateTime outdate = new DateTime();
DateTime date = DateTime.TryParse(TextBox1.Text,out outdate);

然后

String EndDate = (DateTime)date.ToShortDateString();

【讨论】:

  • 最后一行不起作用。因为你已经有了日期时间。您可以使用date.Date 删除时间组件。
  • 我不希望输出为字符串。它应该在 DateTime 但没有小时、分钟和秒。所以 ToShortDateString 不是我的答案。 dateTextBox1.Date 给我的输出相同 (21.8.2014 00:00:00) 我不知道为什么,但输出给出了相同的值。
猜你喜欢
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多