仅从 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 值,则不要打印为 startDate
或 startDate.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 查询中的值超出范围