将 dd-MM-yyyy HH:mm:SS 转换为 MM/dd/yyyy 的 SQL 语句

3
我该如何将 '11-09-2012 5:08:31 PM' 转换成'09/11/2012'?(从 dd-MM-yyyy HH:mm:SSMM/dd/yyyy)。
日期是 2012年9月11日。 还有在C#中转换的方法吗?但是我只想得到日期而不是字符串。

1
使用DateTime.Parse()方法将字符串转换为日期时间。 - opewix
1
你想将一个字符串转换为另一个字符串,但是只想要日期而不是字符串吗? - Tim Schmelter
@JesseJames 它会返回带有时间的日期,我想让它仅返回日期并以 MM/dd/yyyy 格式显示。 - Lajja Thaker
1
使用DateTime的ToString方法和模式"MM/dd/yyyy": date.ToString("MM/dd/yyyy")。 - opewix
1
@LajjaThaker 你使用的 SQL Server 版本是哪个? - Taryn
显示剩余2条评论
5个回答

5

使用 SQL Server 查询:

SELECT CONVERT(DATETIME, '11-09-2012 5:08:31 PM', 101);

这将转换为MM/dd/yyyy。更多信息请参见CAST和CONVERT(Transact-SQL)如何将字符串转换为日期时间?

使用C#进行转换。

您可以按以下方式进行:

string myDate = Convert.ToDateTime("11-09-2012 5:08:31 PM").ToString("MM/dd/yyyy"
                                                  ,CultureInfo.InvariantCulture);

但是如果你不想要一个 String 类型的结果,你可以使用 DateTime.ParseExact 方法。

DateTime parsedDate = DateTime.ParseExact("11-09-2012 5:08:31 PM", 
                                          "MM/dd/yyyy", 
                                          CultureInfo.InvariantCulture);

1

SQL SERVER:

针对 [MM/DD/YYYY] 格式,请按照以下方式操作:

SELECT CONVERT(VARCHAR(10), CAST('11-09-2012 5:08:31 PM' AS DATETIME), 101) AS [MM/DD/YYYY]

同样地,如果您想将日期转换为 [DD/MM/YYYY] 格式,可以像这样操作

SELECT CONVERT(VARCHAR(10), CAST('11-09-2012 5:08:31 PM' AS DATETIME), 103) AS [DD/MM/YYYY]

C#

在C#中,你只需要这样做:

string formattedDt= Convert.ToDateTime("11-09-2012 5:08:31 PM")
                           .ToString("MM/dd/yyyy",CultureInfo.InvariantCulture);

0
在C#中,您应该能够使用方法
DateTime.ToShortDateString();

甚至可以这样:

DateTime.Now.Date -- will produce just the date

来自 MSDN 的说明:

ToShortDateString 方法返回的字符串是与文化相关的。它反映了当前文化的 DateTimeFormatInfo 对象定义的模式。例如,对于 en-US 文化,标准短日期格式为 "M/d/yyyy";对于 de-DE 文化,它是 "dd.MM.yyyy";对于 ja-JP 文化,它是 "yyyy/M/d"。特定格式字符串在特定计算机上也可以进行自定义,以使其与标准短日期格式字符串不同。


请注意,这取决于文化背景。如果您始终希望使用“MM/dd/yyyy”格式,并且您的代码可能在其他文化环境中运行,那么您需要更加具体明确。 - Tim S.
@TimS。这就是为什么我提供了该方法的链接,但我添加了一条注释。 - Taryn

0
string date = "11-09-2012 5:08:31 PM";
string newDate = DateTime.Parse(date).ToString("dd/MM/yyyy");

0
这是一个使用日期时间解析的示例代码。如需更多信息,请访问链接C-sharp date time formats
string inputString = "11/08/2012";
DateTime dt = DateTime.MinValue;
try {
dt = DateTime.Parse(inputString);    
} 
catch (Exception ex) {
// handle the exception however you like.
return;
}
string formattedDate = String.Format("{0:MMM d, yyyy}", dt);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接