SELECT GETDATE()
Run Code Online (Sandbox Code Playgroud)
返回: 2008-09-22 15:24:13.790
我希望那个日期部分没有时间部分: 2008-09-22 00:00:00.000
我怎么能得到它?
从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 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) 在我正在处理的摘录中,我有2 datetime列.一列存储日期,另一列存储时间,如图所示.
如何查询表以将这两个字段合并为1列类型datetime?
日期
2009-03-12 00:00:00.000
2009-03-26 00:00:00.000
2009-03-26 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
时
1899-12-30 12:30:00.000
1899-12-30 10:00:00.000
1899-12-30 10:00:00.000
Run Code Online (Sandbox Code Playgroud) 我datetime在SQL Server中有一个列,它给我这样的数据10/27/2010 12:57:49 pm,我想查询这个列,但只是让SQL Server返回日月和年 - 例如.2010 10 27或类似的东西.
我应该研究哪些功能?
我应该尝试转换为其他日期数据类型吗?或者只是将其转换为字符串?
在MS SQL 2000和2005中,给定日期时间,例如'2008-09-25 12:34:56',获得仅包含'2008-09-25'的日期时间的最有效方法是什么?
这里重复一遍.
大家好,
我在很长一段时间内遇到了一些困惑,基本上使用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
感谢大家的好评.很多有用的信息.我将改变我们的功能以消除操作员左侧的功能.虽然我们的大多数日期列都不使用索引,但它可能仍然是一种更好的做法.
我怎样才能获得DateTime的Date部分?我正在寻找像year()函数这样的东西但是整个日期.
我试图从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 ..
非常感谢提前!:)
重复 什么是去除datetime值(SQL Server)的时间部分的最佳方式?
我有一个列来跟踪使用日期时间创建事物的列,但是我想生成一个按日分组的报表,所以我需要一种方法来清空datetime列的时间组件.
我该怎么做呢?