从SQL Server检索的日期格式错误

时间:2018-12-04 03:48:00

标签: c# sql-server

我将日期保存在DateTime.Now.ToShortDateString()之类的数据库中,格式看起来像yyyy-MM-dd在数据库中。

问题是,当我使用选择查询检索该日期时,它会得到一个类似yyyy-MM-dd HH:mm:ss tt的日期。

我的问题是如何从yyyy-MM-dd格式的数据库中获取日期?

例如:

    我数据库表中的
  • 日期:2018-12-03
  • 检索日期:2018-12-03 12:00:00 AM

我希望像这样检索日期:2018-12-03

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

您的问题是表中的列仍定义为完整的日期时间,因此无论您如何插入或更新它,它都会添加额外的信息。您需要做的就是在select上使用convert函数。

https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017

SELECT convert([columnName],varchar(10),111) FROM [tablename]

答案 1 :(得分:1)

您可以尝试使用此功能:

DateTime.ParseExact(dateVariable, "yy/MM/dd HH:mm:ss", 
    CultureInfo.InvariantCulture
    ).ToString("MM-dd-yyyy")

答案 2 :(得分:0)

您可以使用
将结果转换为所需的字符串/确切日期格式   转换(所需类型,您的数据,格式)。看一下我的以下代码片段:

 declare @date as datetime
 declare @string varchar(30)
 declare @tempDate date

 set @date = '2012-02-03 12:00:03 AM'
 --convert into string format
 set @string = CONVERT(varchar, @date, 1)
 --convert into Date format, you want
 set @tempDate = CONVERT(date, @date,1)

 select @string as time
 select @tempDate as another