Sql server sql中包含结束时间的当前日期
我有这样的疑问:Sql server sql中包含结束时间的当前日期,sql-server,tsql,Sql Server,Tsql,我有这样的疑问: select cast(convert(varchar(10), getdate(), 110) as datetime) currentdate ----------------------- 2013-07-28 00:00:00.000 currentdate ----------------------- 2013-07-28 23:59:59 这是像这样的返回: select cast(convert(varchar(10), getdate(), 110) a
select cast(convert(varchar(10), getdate(), 110) as datetime)
currentdate
-----------------------
2013-07-28 00:00:00.000
currentdate
-----------------------
2013-07-28 23:59:59
这是像这样的返回:
select cast(convert(varchar(10), getdate(), 110) as datetime)
currentdate
-----------------------
2013-07-28 00:00:00.000
currentdate
-----------------------
2013-07-28 23:59:59
但我想得到当前日期和结束时间。我的预期输出如下:
select cast(convert(varchar(10), getdate(), 110) as datetime)
currentdate
-----------------------
2013-07-28 00:00:00.000
currentdate
-----------------------
2013-07-28 23:59:59
那么,在这种情况下,你需要给你的varchar,你要转换为更多的字符
select cast(convert(varchar(30), getdate(), 110) as datetime)
**
问题是:为什么首先要将GETDATE的输出转换为Varchar,然后再转换回DATETIME
你就不能用它吗
SELECT GETDATE()
就这些
更新:好的,那么你想得到当天,但是固定的时间是23:59:59
试试这个:
SELECT
CAST(CONVERT(VARCHAR(10), GETDATE(), 110) + ' 23:59:59' AS DATETIME)
那么,在这种情况下,你需要给你的varchar,你要转换为更多的字符
select cast(convert(varchar(30), getdate(), 110) as datetime)
**
问题是:为什么首先要将GETDATE的输出转换为Varchar,然后再转换回DATETIME
你就不能用它吗
SELECT GETDATE()
就这些
更新:好的,那么你想得到当天,但是固定的时间是23:59:59
试试这个:
SELECT
CAST(CONVERT(VARCHAR(10), GETDATE(), 110) + ' 23:59:59' AS DATETIME)
出于显示目的,以下任一项都将执行此操作
SELECT DATEADD(s, -1, DATEADD(day, 1,
CONVERT(DATETIME, CONVERT(DATE, GETDATE()))));
……或者
SELECT DATEADD(s, -1, DATEADD(day, 1,
DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)));
您也可以将固定时间设置为23:59:59,但在闰秒调整时会出现无效时间,这可能是正常的,也可能是不正常的
如果您想将其用于比较目的,最好使用少于下一个日期的日期。以下任一项都可以用于显示目的
SELECT DATEADD(s, -1, DATEADD(day, 1,
CONVERT(DATETIME, CONVERT(DATE, GETDATE()))));
……或者
SELECT DATEADD(s, -1, DATEADD(day, 1,
DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)));
您也可以将固定时间设置为23:59:59,但在闰秒调整时会出现无效时间,这可能是正常的,也可能是不正常的
如果要将其用于比较目的,最好使用少于下一个日期的日期。如果要返回当前日期和结束时间,则必须手动附加结束时间:
选择castconvertvarchar10,getdate,110+'23:59:59.997'作为日期时间如果要返回当前日期和结束时间,则必须手动附加结束时间:
选择castconvertvarchar10,getdate,110+'23:59:59.997'作为日期时间仅用于不带毫秒的显示
SELECT
CONVERT(VARCHAR(10), GETDATE(), 110) + ' 23:59:59'
仅用于显示,无需毫秒
SELECT
CONVERT(VARCHAR(10), GETDATE(), 110) + ' 23:59:59'
先生,我想用结束时间显示日期。我的意思是我的查询返回值如下:2013-07-28 23:59:59执行查询时,我只得到我的答案。我想用结束时间显示日期。我的意思是我的查询返回值如下:2013-07-28 23:59:59执行查询时,我只得到我的答案。为什么?你打算用23:59:59做什么?为什么?你打算用23:59:59做什么?