当我选择日期在SQL返回为2011-02-25 21:17:33.933。但我只需要日期部分,即2011-02-25。我该怎么做呢?
CAST(
FLOOR(
CAST( GETDATE() AS FLOAT )
)
AS DATETIME
)
http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm
最快的是date ediff。
select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl
但是如果你只需要使用这个值,那么你可以跳过dateadd,例如。
select ...
WHERE somedate <= datediff(d, 0, getdate())
表达式datediff(d, 0, getdate())足以返回今天的日期而不包含时间部分。
我猜他想要根绳子。
select convert(varchar(10), '2011-02-25 21:17:33.933', 120)
这里的120告诉转换函数,我们以以下格式传递输入日期:yyyy-mm-dd hh:mi:ss。
SQL Server 2008:
Convert(date, getdate())
请参考https://learn.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql
有点晚了,但是可以使用ODBC的“curdate”函数(尖括号中的“fn”是ODBC函数转义序列)。
SELECT {fn curdate()}
输出:2013-02-01
使用很简单:
convert(date, Btch_Time)
在下面的例子:
表:
Efft_d Loan_I Loan_Purp_Type_C Orig_LTV Curr_LTV Schd_LTV Un_drwn_Bal_a Btch_Time Strm_I Btch_Ins_I
2014-05-31 200312500 HL03 NULL 1.0000 1.0000 1.0000 2014-06-17 11:10:57.330 1005 24851e0a-53983699-14b4-69109
Select * from helios.dbo.CBA_SRD_Loan where Loan_I in ('200312500') and convert(date, Btch_Time) = '2014-06-17'
首先将日期转换为浮点数(这将显示数字),然后将数字舍入为0小数点,然后将其转换为datetime。
convert(datetime,round(convert(float,orderdate,101),0) ,101)
如果你想返回一个日期类型只是一个日期使用
CONVERT(date, SYSDATETIME())
or
SELECT CONVERT(date,SYSDATETIME())
or
DECLARE @DateOnly Datetime
SET @DateOnly=CONVERT(date,SYSDATETIME())
在转换为日期后将其转换回datetime,以便在需要时保持相同的datatime
select Convert(datetime, Convert(date, getdate()) )
如果你需要时间为0,比如2018-01-17 00:00:00.000:
Select convert (datetime, convert (date, getdate ()), 121)
虽然已经太晚了,但我还是坚持了下来
declare @vCurrentDate date=getutcdate()
select @vCurrentDate
当数据类型为date时,小时将被截断
我会使用DATEFROMPARTS函数。这很简单,你不需要选角。以这个查询为例:
Select DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE())) as myNewDate
将返回
2021-01-21
好的部分是你也可以创建你自己的日期,例如你想要一个月的第一天作为日期,那么你可以像下面这样使用:
Select DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) as myNewDate
结果将是:
2021-01-01
推荐文章
- GROUP BY with MAX(DATE)
- 删除id与其他表不匹配的sql行
- 等价的限制和偏移SQL Server?
- 如何从SQL Server中的字符串中剥离所有非字母字符?
- 为什么我不能在DELETE语句中使用别名?
- 在SQL Server Management Studio中保存带有标题的结果
- "where 1=1"语句
- 如何选择一个记录和更新它,与一个单一的查询集在Django?
- 多语句表值函数vs内联表值函数
- 如何从Oracle的表中获取列名?
- NOLOCK提示在SELECT语句中的作用
- SQL OVER()子句-它什么时候有用,为什么有用?
- 如果字段在MySQL中为空,则返回0
- 检查SQL Server登录是否已经存在
- 我如何使用ROW_NUMBER()?