C#将字符串转换为无时间的日期时间

C#将字符串转换为无时间的日期时间,c#,sql,datetime,format,converter,C#,Sql,Datetime,Format,Converter,似乎我想要什么是不可能的(至少根据我读到的一些文章)。但我只是想再核实一下。我正在从我的数据库中读取一个DateTime。在数据库中,它的编写方式类似于“01.01.2011”,但当我使用SQL读取它并将其存储在字符串中时,它会显示“01.01.2011 00:00”。 然后我想好了,我将从字符串中缩短时间。但有一个窍门,这似乎是不可能的。即使我从字符串中剪切了“00:00:00”部分(它只是说“01.01.2011”),并将其转换为日期时间,仍然会显示“00:00:00”。 我是C#新手,但这

似乎我想要什么是不可能的(至少根据我读到的一些文章)。但我只是想再核实一下。我正在从我的数据库中读取一个
DateTime
。在数据库中,它的编写方式类似于“01.01.2011”,但当我使用SQL读取它并将其存储在
字符串中时,它会显示“01.01.2011 00:00”。
然后我想好了,我将从
字符串中缩短时间。但有一个窍门,这似乎是不可能的。即使我从
字符串中剪切了“00:00:00”部分(它只是说“01.01.2011”),并将其转换为
日期时间
,仍然会显示“00:00:00”。 我是C#新手,但这一部分似乎在Java中得到了更好的解决,在Java中,您可以定义您希望日期的显示方式,并且它是这样显示的(当您不希望日期时,不需要指定时间)。 所以,我想明确一点,是真的不可能实现我想要的(而且我必须在我的表示层中使用正确的格式),还是我没有找到正确的信息


谢谢你的myDatTime.ToString(“MMM dd,yyyy”)会帮你的。。这可能会有所帮助。
在c#中:
如果(!string.IsNullOrEmpty(yourDateTime))
{
yourDateTime.ToString(“dd/MM/yyyy”);
}

在sql server中:


.Net中的日期时间始终是日期和时间。如果愿意,可以忽略时间部分,但它仍然存在。在内部,
DateTime
跟踪自1/1/0001以来的整数。(一毫秒内有10000个滴答声)。因此,
DateTime
不可能没有时间组件

对于仅限日期的数据,常用约定是使用时间设置为午夜(00:00:00)的日期。您可以使用其
.Date
属性从任何
DateTime
获取其中一个

你要小心,一旦你忽略了时间,你总是忽略了时间。否则,在巴西等地处理夏令时问题时,您可能会遇到问题,在那里时间从晚上11:59:59过渡到凌晨1:00:00。如果您对如何处理数据不小心,那么在午夜填充在
DateTime
中的仅日期数据可能会被误解为实际不存在的本地时间


在.NET Framework中没有不带时间的真实日期的内置类型。但是,您可以在库的结构中找到它。如果您有很多基于日期的业务逻辑,您可以考虑使用它。

因此,我必须将它从字符串转换为DATETIME(因为从SQL得到它作为字符串),然后从DATETIME转换为String(在应用您的函数时),然后再到DATETIME(因为我需要它作为DATETIME)。?@user3466562 c#支持直接使用数据库datetime类型强制转换datetime类型。因此,当您读/写数据库时,您只需将datatime对象作为参数传入,它就会欣然接受它。如果您只想显示没有时间的日期,那么请使用to string方法我也看到了,但问题是datetime为null时。所以我想我会把它读成字符串,然后处理它。但这似乎是一个麻烦。根据这一点:不可能从c#中的datetime中截断时间。因此,我想我必须检查字符串日期是否为空,如果不是,则检索为空datetime@user3466562您应该在数据库中使用DateTime类型而不是字符串…这就是它存在的原因。您可以通过“dataRow[Column]is DbNull”来检查字段是否为null。如果不是,则在数据库中强制转换它。它当然是一个datetime类型,但没有时间(因此它实际上只是一个日期)。但是,当我从数据库中用c#读到它时,它会自动将“00:00:00”关联到我的日期(在其他语言中没有这样做-java、delphi-在这里,我只得到数据库中的日期),我不清楚您想要实现什么。你能告诉我们你到底想做什么吗?用简短的描述来交换你问题中最后的“我想要什么”。谢谢,这也是我发现的,但我想在这里核实一下(因为我无法相信)。我也读过关于野田佳彦的书,但在我尝试之前,我想我会检查一下是否真的不可能使用原生C。再次谢谢你。此外,您还将其与Java进行了比较,但也存在类似的问题
java.util.Date
是日期+时间类型,
Calendar
也是。Joda Time和Java8都有一个
LocalDate
类型,类似于Noda Time。
select convert(varchar, yourDateTime ,102) as [yourDateTime]