Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何转换已退出的sql日期?_C#_Sql_Sql Server_Datetime - Fatal编程技术网

C# 如何转换已退出的sql日期?

C# 如何转换已退出的sql日期?,c#,sql,sql-server,datetime,C#,Sql,Sql Server,Datetime,我是c语言的新手 我的fill sql数据库中有一列采用字符串格式,但有两种值数据格式,如下所示: 2014年7月29日上午12:00 及 2014年11月11日 如何将所有2014年7月29日上午12:00的值转换为2014年11月11日的值?试试这个 String stringDate="Jul 29 2014 12:00AM"; DateTime date=DateTime.Parse(stringDate); Console.Write(d

我是c语言的新手

我的fill sql数据库中有一列采用字符串格式,但有两种值数据格式,如下所示:

2014年7月29日上午12:00

2014年11月11日

如何将所有2014年7月29日上午12:00的值转换为2014年11月11日的值?

试试这个

        String stringDate="Jul 29 2014 12:00AM";
        DateTime date=DateTime.Parse(stringDate);
        Console.Write(date.ToString());
如果你想在查询中更改

SELECT convert(datetime, 'Jul 29 2014 12:00AM', 101)
在日期变量后面使用此选项,并将其格式设置为月/日/年。

不,不要这样做

A没有任何隐式格式。它只有日期和时间值。没有这样的事情

日期时间为2014年7月29日上午12:00或2014年11月11日格式

日期时间的字符串表示形式可以具有格式。在这种情况下,2014年7月29日12:00AM将只是DateTime的数据库管理系统表示

如果您将日期保留在字符列中,请停止!将列类型更改为datetime或相关类型

如果您只想用特定的格式表示日期时间,请使用.ToString-like

请阅读


首先使用日期时间。不要将日期存储为字符串,而是将其存储为日期。此外,不要假设字符串格式是什么,请显式指定它。11月11日是11月11日还是11月11日?隐含格式之外的日期是11月11日。这仅在日期以US格式存储时有效。@PanagiotisKanavos A DateTime没有任何隐含格式。没有所谓的东西:日期是储存在美国的format@SonerG这正是我的观点。OP表示,他将日期存储为长日期和短日期格式的字符串,但这个答案假设这些字符串是仅限美国的短日期格式。只能通过将日期存储为dates@PanagiotisKanavos确切地根本问题是将日期保存为字符串,这始终是一个坏主意。不能保证使用DateTime。Parse方法成功解析此字符串。我不明白为什么选择这个答案作为答案。你能给出一个测试用例的例子吗,当用户说他的所有数据都插入到数据库格式中时,DateTime.Parse会下降,比如2014年7月29日12:00AM。根据我的逻辑,这种格式是从datetime变量插入的。这在除我们之外的任何客户端区域性中都会失败。如果您传递与数据库中存储的字符串格式相匹配的CultureInfo(在本例中,该格式似乎是en-US),则可以使其工作。@AnikIslamAbhi DateTime.Parse默认使用CurrentCulture。这意味着,如果您的CurrentCulture没有MMM dd yyyy HH:mm:sstt作为标准日期和时间格式,您的解析操作将失败。在网站CurrentCulture中添加到@SonerGönül可能由最终用户的浏览器设置控制,而在桌面应用程序中,则由用户的区域设置控制。您需要知道存储日期字符串时使用的区域设置。如果字符串是在客户端创建的,这将取决于编写器的区域设置。
.ToString("MM/dd/yyyy");
date.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);