SQL选择查询在SQL中返回没有时间的日期,但是当我运行我的ASP项目时,它不断添加“12:00:00 AM”

Posted

技术标签:

【中文标题】SQL选择查询在SQL中返回没有时间的日期,但是当我运行我的ASP项目时,它不断添加“12:00:00 AM”【英文标题】:SQL Select Query returning DATE without TIME inside SQL but i when i run my ASP project it keeps adding "12:00:00 AM" 【发布时间】:2015-10-08 03:28:07 【问题描述】:
SELECT 
    Lname + ' ' + Ename  as Name, 
    DateOfBirth,  
    DATEDIFF(hour,dateOfBirth,GETDATE())/8766 AS Age 
FROM EmpTBL 
WHERE 
    DATEADD( Year, DATEPART( Year, GETDATE()) - DATEPART( Year, DateOfBirth), DateOfBirth) 
    BETWEEN CONVERT( DATE, GETDATE()) AND CONVERT( DATE, GETDATE() + 30);

上面的查询是我在 SQL 中测试时使用的,它似乎可以工作,但是当我将它添加到我的 ASP.net 项目时结果不同,我已经添加了“Convert(date, getdate())” How to select date without time in SQL

我的项目的输出

我的 SQL 的输出

【问题讨论】:

为什么不在数据网格中格式化日期? 【参考方案1】:

当我们从数据库中获取日期到 asp.net 时,它是日期时间格式而不是日期,因此您可以根据需要将其转换为自定义日期:

<%# Convert.ToDateTime(Eval("DateOfBirth")).ToString("yyyy/MM/dd")%> 

您可以根据需要使用任何Format specifier/Custom Date and Time Format String。

【讨论】:

【参考方案2】:

将您的查询更改为

select CONVERT(VARCHAR(10),dateOfBirth,101) FROM EmpTBL  WHERE <>

【讨论】:

【参考方案3】:

可以使用ASP.Net的CONVERT函数,转换成字符串再格式化。

比如添加.ToString("MM/dd/yyyy")

我认为这篇文章可以帮助你:String Format Date - C# or VB.NET

【讨论】:

【参考方案4】:

.net 只有日期没有这样的数据类型。您只需在 datetime 对象中获取默认时间。

Sql 具有日期、时间和日期时间概念,因此 Sql 可以只显示日期。

您可以忽略代码中的时间,也可以通过格式化来选择不在 UI 上显示时间。

【讨论】:

【参考方案5】:

GridView 中使用DataFormatString 属性。如果你将它设置为0:d,你应该只得到一个短日期格式。

【讨论】:

以上是关于SQL选择查询在SQL中返回没有时间的日期,但是当我运行我的ASP项目时,它不断添加“12:00:00 AM”的主要内容,如果未能解决你的问题,请参考以下文章

sql日期

SQL Date 函数

SQL Date 函数

在 SQL 查询中比较日期

在 SQL 中对星期几进行排序

SQL 查询不会选择日期之间的所有行