当我选择日期在SQL返回为2011-02-25 21:17:33.933。但我只需要日期部分,即2011-02-25。我该怎么做呢?
当前回答
我将创建一个标量函数,并使用format()设置希望看到的数据类型。它必须便于以后的维护。
其他回答
最快的是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())足以返回今天的日期而不包含时间部分。
在PLSQL中可以使用
to_char(SYSDATE,'dd/mm/yyyy')
试试这个。
SELECT DATEADD(DD, 0, DATEDIFF(DD, 0, GETDATE()))
首先将日期转换为浮点数(这将显示数字),然后将数字舍入为0小数点,然后将其转换为datetime。
convert(datetime,round(convert(float,orderdate,101),0) ,101)
我会使用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()?