仅从 sql server 中的日期数据类型中获取日期 [重复]

Posted

技术标签:

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

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

我只需要从 sql server 获取日期,尽管我使用了日期数据类型,但我也得到了时间。但在数据库n_strat_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

【讨论】:

以上是关于仅从 sql server 中的日期数据类型中获取日期 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008 仅从字段中选择日期 [重复]

在 PHP Laravel 中的 SQL Server 中将字符串转换为日期数据类型

将 varchar 数据类型转换为 datetime 数据类型导致 SQL 查询中的值超出范围

在sql server2008中的日期类型是啥

如何在sql server中把数据库中的日期字段转换为短日期格式

SQL Server 中 关于时间 类型的区别