SELECT GETDATE()
返回时间:2008-09-22 15:24:13.790
我想要没有时间部分的日期部分:2008-09-22 00:00:00.000
我怎么能得到那个?
SELECT GETDATE()
返回时间:2008-09-22 15:24:13.790
我想要没有时间部分的日期部分:2008-09-22 00:00:00.000
我怎么能得到那个?
当前回答
如果要将结果分配给列或变量,请为其指定DATE类型,并且转换是隐式的。
DECLARE @Date DATE = GETDATE()
SELECT @Date --> 2017-05-03
其他回答
为什么不使用DATE_FORMAT(your_datetiem_column,'%d-%m-%Y')?
示例:从table_name中选择DATE_FORMAT(some_datetime_column,“%d-%m-%Y”)
您可以通过重新排列“%d-%m-%Y”部分来更改m、d和year的顺序
在SQL Server 2000上
CAST(
(
STR( YEAR( GETDATE() ) ) + '/' +
STR( MONTH( GETDATE() ) ) + '/' +
STR( DAY( GETDATE() ) )
)
AS DATETIME)
哇,让我数一数你能做到这一点的方法。(无意双关)
为了以这种格式获得您想要的结果:
2008-09-22
这里有几个选项。
SELECT CAST(GETDATE() AS DATE) AS 'Date1'
SELECT Date2 = CONVERT(DATE, GETDATE())
SELECT CONVERT(DATE, GETDATE()) AS 'Date3'
SELECT CONVERT(CHAR(10), GETDATE(), 121) AS 'Date4'
SELECT CONVERT(CHAR(10), GETDATE(), 126) AS 'Date5'
SELECT CONVERT(CHAR(10), GETDATE(), 127) AS 'Date6'
所以,我建议你选择一个你满意的方法,并在所有的桌子上使用这种方法。
所有这些选项都以完全相同的格式返回日期。为什么SQL Server有这样的冗余?
我不知道,但他们知道。也许比我聪明的人可以回答这个问题。
希望这对某人有所帮助。
为了获得指示的结果,我使用以下命令。
SELECT CONVERT(DATETIME,CONVERT(DATE,GETDATE()))
我认为它很有用。
您可以对日期部分和日期格式使用以下内容:
DATENAME=>返回表示指定日期的指定日期部分的字符串
DATEADD=>DATEPART()函数用于返回日期/时间的单个部分,例如年、月、日、小时、分钟等。
DATEPART=>返回表示指定日期的指定日期部分的整数。
CONVERT()=>CONVERT函数是将一种数据类型的表达式转换为另一种数据的通用函数。这个CONVERT()函数可用于以不同格式显示日期/时间数据。