【问题标题】:Date format Issue in SQL Server or ASP.NETSQL Server 或 ASP.NET 中的日期格式问题
【发布时间】:2012-10-31 13:47:34
【问题描述】:

当我在 SQL Server 2008 CTP 中运行存储过程时,我得到日期 "2012-10-31 00:00:00.000" 的这种格式。

但是当我使用它进行转换时

Convert.ToString(drConversation["ConversationDate"])

在 C# 中,我得到"10/31/2012 12:00:00 AM"

应该是哪里出了问题?在 C# 代码中还是在 SQL Server 中?

【问题讨论】:

  • 这些值是相同的;有什么问题?
  • 您可以轻松地在 C# 中调用 Convert.ToDateTime(drConversation["ConversationDate"]).ToString("yyyy-MM-dd HH:mm:ss.fff") 并获得与 SQL Server 返回完全相同的格式 - 那么这里真正的问题是什么?我没有看到任何问题....
  • 数据按摩师:当我将字符串解析为日期时间时出现错误。 error=>“日历System.Globalization.GregorianCalendar不支持字符串表示的DateTime。”
  • Marc_s : DateTimeParseExcect(Convert.ToString(drConversation["ConversationDate"])) 在函数中:我返回 DateTime.ParseExact(DateValue.Substring(0,10),DateExectParse, null);我的“DateExectParse”格式为“dd/MM/yyyy”。

标签: asp.net sql sql-server-2008 c#-4.0


【解决方案1】:

没有问题,SQLServer使用24-hr format,而Convert class的输出输出12-hr format

【讨论】:

  • 那为什么日期格式从“YYY-dd-mm”变成了“MM/dd/YYYY”?
  • 因为它是默认的。您希望它保留格式吗?
  • @chiragKhatsuriya 你可以使用Convert.ToDateTime(drConversation["ConversationDate"]).ToString("yyyy-MM-dd HH:mm:ss.fff")
【解决方案2】:

实际上是同一日期,但在不同的format

如果您想以与 Sql Server 中相同的格式查看它,您可以使用:

DateTime.Parse(drConversation["ConversationDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss")

【讨论】:

  • 为什么要转换为字符串,然后转换为日期,然后再转换回字符串? ((Date) drConversation["ConversationDate"]).ToString("yyyy-MM-dd HH:mm:ss.fff") 应该做对吗?
【解决方案3】:

试试这个方法

DateTime mydate= Convert.ToDateTime(drConversation["ConversationDate"].ToString());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多