【问题标题】:fetch only date from date datatype in sql server [duplicate]仅从 sql server 中的日期数据类型中获取日期 [重复]
【发布时间】:2012-11-26 09:00:52
【问题描述】:

可能重复:
How to return the date part only from a SQL Server datetime datatype

我只需要从 sql server 获取日期,尽管我使用了日期数据类型,但我也得到了时间。但在数据库n_strat_date 列中只有日期值而不是时间值。

我的桌子:

我的输出:

【问题讨论】:

    标签: sql-server-2008 date


    【解决方案1】:

    无论您如何在 SQL 中存储日期,如果您在 C# DateTime 值中加载此数据,它们将始终具有时间部分(除非另有说明,否则为 12:00:00 AM)。

    您的问题与 SQL 无关;这是您的应用程序中的格式问题。

    具体来说,如果您在名为 startDate 的变量中包含 DateTime 值,则不要打印为 startDatestartDate.ToString() 的形式,而是使用显式格式,例如:startDate.ToString("M/d/yyyy")

    这是一个online test,看看它是如何工作的。

    【讨论】:

    • 这里我将数据集值填充到字符串 strStartDate 。所以当我按照您的建议使用它时会出现错误。我的代码: string strStartDate = dsViewTrip.Tables[0].Rows[i][4].ToString("m/d/yyyy");
    • 我应该猜出什么错误?或者你能给我一个提示吗?
    • 我只得到了结果日期,当我从数据集加载到字符串时......按照下面的代码字符串 strStartDate = dataset.Tables[0].Rows[i][4] .ToString().Substring(0,10);
    • @Nirmala 不可靠; DateTime.ToString() 的输出取决于系统的区域设置。
    • 要应用格式化的 ToString() 重载,您需要先将该值转换为 DatetTime。所以,试试这个:strStartDate = ((DateTime)dataset.Tables[0].Rows[i][4]).ToString("M/d/yyyy")
    【解决方案2】:

    试试吧,它会起作用的 select CONVERT(date,column_name) from table_name

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多