Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 更改一个表并设置计算列,则会得到“无法持久化,因为该列是不确定的。”。这是因为datediff将字符串转换为datetime对象,而这种转换会破坏在持久列中使用此对象的确定性功能。。。不幸。改为使用它(将“at”替换为@,…):SET(at)datedif_Sql Server_User Defined Functions - Fatal编程技术网

Sql server 更改一个表并设置计算列,则会得到“无法持久化,因为该列是不确定的。”。这是因为datediff将字符串转换为datetime对象,而这种转换会破坏在持久列中使用此对象的确定性功能。。。不幸。改为使用它(将“at”替换为@,…):SET(at)datedif

Sql server 更改一个表并设置计算列,则会得到“无法持久化,因为该列是不确定的。”。这是因为datediff将字符串转换为datetime对象,而这种转换会破坏在持久列中使用此对象的确定性功能。。。不幸。改为使用它(将“at”替换为@,…):SET(at)datedif,sql-server,user-defined-functions,Sql Server,User Defined Functions,更改一个表并设置计算列,则会得到“无法持久化,因为该列是不确定的。”。这是因为datediff将字符串转换为datetime对象,而这种转换会破坏在持久列中使用此对象的确定性功能。。。不幸。改为使用它(将“at”替换为@,…):SET(at)datediff=(datediff(dd,-1,convert(datetime,(at)dbdate,112))%7)+1; CREATE VIEW V_Stuff WITH SCHEMABINDING AS SELECT MD.ID, MD

更改一个表并设置计算列,则会得到“无法持久化,因为该列是不确定的。”。这是因为datediff将字符串转换为datetime对象,而这种转换会破坏在持久列中使用此对象的确定性功能。。。不幸。改为使用它(将“at”替换为@,…):SET(at)datediff=(datediff(dd,-1,convert(datetime,(at)dbdate,112))%7)+1;
CREATE VIEW V_Stuff WITH SCHEMABINDING AS 
SELECT    
MD.ID, 
MD.[DateTime]
...
        dbo.FN_DayNumeric_DateTime(MD.DateTime) AS [Day], 
        dbo.FN_TimeNumeric_DateTime(MD.DateTime) AS [Time], 
...
FROM       {SOMEWHERE}
GO
CREATE UNIQUE CLUSTERED INDEX V_Stuff_Index ON V_Stuff (ID, [DateTime])
GO
function weekday($fyear, $fmonth, $fday) //0 is monday
{
  return (((mktime ( 0, 0, 0, $fmonth, $fday, $fyear) - mktime ( 0, 0, 0, 7, 17,   2006))/(60*60*24))+700000) % 7;
}
SELECT DATEPART(weekday, '2009-11-11')
CREATE FUNCTION DayOfWeek(@myDate DATETIME ) 
RETURNS int
AS
BEGIN
RETURN DATEPART(weekday, @myDate)
END
GO
SELECT dbo.DayOfWeek('2009-11-11')
DATEPART(weekday, YEAR_DATE)
SELECT DATENAME(dw, GETDATE());
CREATE FUNCTION [dbo].[FN_DayNumeric_DateTime] 
(@DT DateTime)
RETURNS INT WITH SCHEMABINDING
AS 
BEGIN
DECLARE @Result int 
DECLARE  @FIRST_DATE        DATETIME
SELECT @FIRST_DATE = convert(DATETIME,-53690+((7+5)%7),112)
SET  @Result = datediff(dd,dateadd(dd,(datediff(dd,@FIRST_DATE,@DT)/7)*7,@FIRST_DATE), @DT)
RETURN (@Result)
END
GO
;
with 
Dates(DateValue) as 
(
    select cast('2000-01-01' as date)
    union all 
    select dateadd(day, 1, DateValue) from Dates where DateValue < '2050-01-01'
)
select 
    year(DateValue) * 10000 + month(DateValue) * 100 + day(DateValue) as DateKey, DateValue,        
    datediff(day, dateadd(week, datediff(week, 0, DateValue), 0), DateValue) + 2 as DayOfWeek,
    datediff(week, dateadd(month, datediff(month, 0, DateValue), 0), DateValue) + 1 as WeekOfMonth,
    datediff(week, dateadd(year, datediff(year, 0, DateValue), 0), DateValue) + 1 as WeekOfYear
    from Dates option (maxrecursion 0)
datediff(dd,'2010-01-03',[DateColumn]) % 7 + 1
datediff(dd,0,[DateColumn]) % 7 + 1
RETURN (DATEDIFF(dd, -1, convert(datetime, @dbdate, 112)) % 7)+1;