现在碰到一个SQL的问题,向各位求助。 我在SQL Server 里面定义了一个函数,如下:
create function dbo.fn_getdatetimenows() returns datetime
as
begin
declare @datetimenows datetime
select @datetimenows = dbo.GETDATE()
return @datetimenows
end 然后,在查询分析器里面,使用
“SELECT [EF2KWeb01].[dbo].[fn_getdatetimenows]()”
来调用这个函数,但总是报错,报错内容如下:
“服务器: 消息 208,级别 16,状态 1,过程 fn_getdatetimenows,行 7
对象名 'dbo.GETDATE' 无效。” 这里的第7行,也就指的是return语句的那一行。 在定义函数的时候,如果不加dbo,函数定义就会出错,加了dbo,调用的时候出错。
这个dbo到底是什么东西,起什么作用?我把它改成sa一样的出错。(我登录SQLServer是用的sa用户名) 另外,我要取当前系统时间前两天的日期,怎么取呢?
比如,现在的系统时间是“2006-06-19 13:10:10 AM”,我想要的值是‘20060617’,8位字符串型的,
有没有比较方便的转换方式呢?因为对系统函数不是特别熟悉,我这里转换的非常麻烦。
create function dbo.fn_getdatetimenows() returns datetime
as
begin
declare @datetimenows datetime
select @datetimenows = dbo.GETDATE()
return @datetimenows
end 然后,在查询分析器里面,使用
“SELECT [EF2KWeb01].[dbo].[fn_getdatetimenows]()”
来调用这个函数,但总是报错,报错内容如下:
“服务器: 消息 208,级别 16,状态 1,过程 fn_getdatetimenows,行 7
对象名 'dbo.GETDATE' 无效。” 这里的第7行,也就指的是return语句的那一行。 在定义函数的时候,如果不加dbo,函数定义就会出错,加了dbo,调用的时候出错。
这个dbo到底是什么东西,起什么作用?我把它改成sa一样的出错。(我登录SQLServer是用的sa用户名) 另外,我要取当前系统时间前两天的日期,怎么取呢?
比如,现在的系统时间是“2006-06-19 13:10:10 AM”,我想要的值是‘20060617’,8位字符串型的,
有没有比较方便的转换方式呢?因为对系统函数不是特别熟悉,我这里转换的非常麻烦。
Create View List
As
Select GetDate() As datetimenows
GO
create function dbo.fn_getdatetimenows() returns datetime
as
begin
declare @datetimenows datetime
select @datetimenows = datetimenows From List
return @datetimenows
end
GO
--調用函數(調用函數時必須加上所有者,此處的dbo即為所有者)
Select dbo.fn_getdatetimenows()
2.现在的系统时间是“2006-06-19 13:10:10 AM”,我想要的值是‘20060617’,8位字符串型的
兩個函數
DateAdd ConvertSelect Convert(Varchar,DateAdd(dd,-2,GetDate()),112)
--Result
20060620
3.取前两天日期select convert(char(18),dateadd(dd,-2,getdate()),112)