相关疑难解决方法(0)

如何仅从SQL Server DateTime数据类型返回日期

SELECT GETDATE()
Run Code Online (Sandbox Code Playgroud)

返回: 2008-09-22 15:24:13.790

我希望那个日期部分没有时间部分: 2008-09-22 00:00:00.000

我怎么能得到它?

sql t-sql sql-server datetime date

1692
推荐指数
32
解决办法
266万
查看次数

删除SQL Server中datetime时间部分的最佳方法

从SQL Server中的datetime字段中删除时间部分时,哪种方法提供了最佳性能?

a) select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)
Run Code Online (Sandbox Code Playgroud)

要么

b) select cast(convert(char(11), getdate(), 113) as datetime)
Run Code Online (Sandbox Code Playgroud)

第二种方法确实发送了更多的字节,但这可能没有转换速度那么重要.

两者似乎都非常快,但在处理数十万或更多行时速度可能会有所不同?

另外,是否有可能有更好的方法来摆脱SQL中日期时间的时间部分?

sql t-sql sql-server datetime date

501
推荐指数
8
解决办法
73万
查看次数

如何在SQL Server中截断日期时间?

在SQL Server 2008中截断日期时间值(删除小时分钟和秒)的最佳方法是什么?

例如:

declare @SomeDate datetime = '2009-05-28 16:30:22'
select trunc_date(@SomeDate)

-----------------------
2009-05-28 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

sql-server datetime truncate sql-server-2008

265
推荐指数
4
解决办法
50万
查看次数

如何在SQL中从DateTime格式获取时间?

我想使用SQL Server 2005和2008默认输出使用SQL查询从DateTime列获取时间:

AttDate                   
==
2011-02-09 13:09:00    
2011-02-09 14:10:00    
Run Code Online (Sandbox Code Playgroud)

我想要这个输出:

AttDate                Time 
==
2011-02-09 13:09:00    13:09
2011-02-09 14:10:00    14:10
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server datetime sql-server-2005

168
推荐指数
6
解决办法
73万
查看次数

如何删除日期时间值(SQL Server)的时间部分?

这是我使用的:

SELECT CAST(FLOOR(CAST(getdate() as FLOAT)) as DATETIME)
Run Code Online (Sandbox Code Playgroud)

我想可能会有更好更优雅的方式.

要求:

  • 它必须尽可能快(铸造越少越好).
  • 最终结果必须是datetime类型,而不是字符串.

sql-server datetime date-conversion

81
推荐指数
4
解决办法
6万
查看次数

如何使用MSSQL GetDate()获取日期?

DELETE from Table WHERE Date > GETDATE();
Run Code Online (Sandbox Code Playgroud)

GETDATE()包括时间.而不是得到

2011-01-26 14:58:21.637
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到:

2011-01-26 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server datetime date

74
推荐指数
4
解决办法
11万
查看次数

只有没有时间的MS SQL日期

大家好,

我在很长一段时间内遇到了一些困惑,基本上使用T-SQL来构建DateTime SQL类型.基本上,我想将DateTime值设为2008-12-1 14:30:12并将其设为2008-12-1 00:00:00.我们为报告运行的很多查询在WHERE子句中使用了一个日期值,但是我有一天的开始和结束日期值并且使用BETWEEN,或者我找到了一些其他方法.

目前我正在使用以下内容: WHERE CAST(CONVERT(VARCHAR, [tstamp], 102) AS DATETIME) = @dateParam

然而,这看起来有点笨重.我希望会有更简单的东西 CAST([tstamp] AS DATE)

有些地方在网上推荐使用DATEPART()函数,但最后我得到了这样的结果:


WHERE DATEPART(year, [tstamp]) = DATEPART(year, @dateParam)
AND DATEPART(month, [tstamp]) = DATEPART(month, @dateParam)
AND DATEPART(day, [tstamp]) = DATEPART(day, @dateParam)

也许我过分关注小事,如果是的话请告诉我.我只是想确保我写的东西尽可能高效.我想消除任何薄弱环节.

有什么建议?

谢谢,
C

感谢大家的好评.很多有用的信息.我将改变我们的功能以消除操作员左侧的功能.虽然我们的大多数日期列都不使用索引,但它可能仍然是一种更好的做法.

sql t-sql sql-server

40
推荐指数
5
解决办法
13万
查看次数

在mssql中只获取DateTime的Date部分

可能重复:
从SQL Server中的"选择日期时间"列中获取分组中的日期

我怎样才能获得DateTime的Date部分?我正在寻找像year()函数这样的东西但是整个日期.

sql-server datetime

32
推荐指数
4
解决办法
20万
查看次数

SQL日期时间格式仅限日期

我试图从sql数据库中选择DeliveryDate作为日期.在数据库中,我将其保存为日期时间格式.如何才能获得日期?

SELECT Subject, DeliveryDate 
from Email_Administration 
where MerchantId =@ MerchantID
Run Code Online (Sandbox Code Playgroud)

03/06/2011 12:00:00我刚刚被选为03/06/2011 ..

非常感谢提前!:)

sql sql-server datetime sql-server-2005

20
推荐指数
2
解决办法
14万
查看次数

从SQL Server中的选择日期时间列中获取分组中的日期

我需要根据日期对某些记录进行分组,但它是一个日期和时间字段,我需要忽略时间部分,只需按日期部分进行分组 - 这是我现在的SQL:

SELECT   
    AutoShipItems.CustomerID,AutoShipItems.NextOrderDate,
    Customer.FirstName,Customer.LastName, Customer.EmailAddress
FROM        
    AutoShipItems 
        INNER JOIN    Customer ON 
            AutoShipItems.CustomerID =Customer.CustomerID
WHERE     
    (AutoShipItems.NextOrderDate <= GETDATE())
GROUP BY 
    AutoShipItems.CustomerID, AutoShipItems.NextOrderDate, 
    Customer.FirstName, Customer.LastName, 
    Customer.EmailAddress
ORDER BY 
    AutoShipItems.NextOrderDate
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2005

9
推荐指数
2
解决办法
3万
查看次数