2015-05-14 3 views
0

Я хотел бы использовать Now(), чтобы получить текущую дату и время, таким образом пытаясь создать функцию, просто не может получить синтаксис праваФункции для Использования Теперь вместо GetDate в SQL Server 2012

USE [db1] 
GO 

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
Create FUNCTION [dbo].[Now]() 
RETURNS [date] AS 
BEGIN 

Declare @Now1 

Select GetDate()     

    -- Return the result of the function 
    RETURN @Now1 
END 

Любой помощь будет оценена.

+2

Почему? Какая польза от этого? –

+0

@SeanLange возможно OP - разработчик ColdFusion, и это их эквивалент: P Кроме того, ваш тип возврата 'date' не включает время, вам нужно' datetime'. – Kritner

+0

Я не понимаю, что вы имеете в виду, будучи разработчиком ColdFusion. Все языки имеют дело с некоторыми вещами в немного отличающемся синтаксисе. Создание скалярной функции для возврата значения скалярной функции по какой-либо другой причине изменение имени глупо. –

ответ

3

Вам не нужно, чтобы создать свою собственную функцию, чтобы получить текущую дату, вы можете использовать

Select GetDate() 

шучу :) Я полагаю, что вы хотите сделать что-то больше, чем возврат только текущую дату

набираете тело таким образом:

Declare @Now1 datetime 
Select @Now1 = GetDate() 

поэтому ваш полный код должен быть

USE [db1] 
GO 

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
Create FUNCTION [dbo].[Now]() 
RETURNS [datetime] AS 
BEGIN 
    Declare @Now1 datetime 
    Select @Now1 = GetDate()  
    RETURN @Now1 
END 
+0

Тип возвращаемого значения, вероятно, должен быть 'datetime' в соответствии с требованиями OP (хотя OP также указывал дату в объявлении их функции) – Kritner

+0

@ Kritner, конечно же! благодаря! Я исправил это. – Parado

0

Сначала необходимо указать тип @Now1.

DECLARE @Now1 DATETIME; 

И тогда вам необходимо установить его.

SET @Now1 = GETDATE(); 
1

Это кажется совершенно смешным и бессмысленным, но вы делаете этот путь более сложным, чем это должно быть.

create function Now() 
returns datetime as 
begin 
    return getdate() 
end 

select dbo.Now() 
Смежные вопросы