我正在将我的数据库从太平洋时间的日期时间转换为UTC,但不会同时更改所有代码.
我正在尝试编写一个触发器,它将更新在任一列中输入的时间并转换它们并将它们插入另一列.
防爆.如果我在OriginalTime列中插入太平洋时间,它应该将时间转换为UTC并使用UTC时间更新NewTime列.相反,如果我在NewTime中插入/更新值,它应该将时间转换回Pacific并将其放入OriginalTime中.
我是不是错误地循环了什么东西?
ALTER TRIGGER tr_Calls_CreateDate ON Calls
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON
DECLARE
@CallId INT,
@CreateDate DATETIME,
@CreateDateUTC DATETIME
--Create cursor
DECLARE CreateDate_Cursor CURSOR LOCAL FOR
SELECT CallId, CreateDate, CreateDateUTC FROM Inserted
OPEN CreateDate_Cursor;
-- Get First Row
FETCH NEXT FROM CreateDate_Cursor INTO @CallId, @CreateDate, @CreateDateUTC;
WHILE @@FETCH_STATUS = 0
BEGIN
IF UPDATE ([CreateDate])
BEGIN
UPDATE Calls
SET CreateDateUTC = dbo.ConvertPacificTimeToUTC(@CreateDate)
WHERE CallId = @CallId
END
IF UPDATE ([CreateDateUTC])
BEGIN
UPDATE Calls
SET CreateDate = …Run Code Online (Sandbox Code Playgroud) 通过搜索多个SO线程,我无法编写一个在where子句中返回适当条件的查询.例如,我有列Col1,它是int一个变量,var1就像varchar现在我在查询下面使用的那样,但它不起作用.
Where CASE WHEN var1 = '1' THEN (Col1 = 1)
WHEN var1 = '2' THEN (Col1 = 2)
ELSE AND (1= 1)
END
Run Code Online (Sandbox Code Playgroud)
它给了我syntax error near '='.
编辑:
如果我想要条件如何
Col1 IN(condtions ....)
我想获取以下查询的结果并执行更新到NAME_UD_AFFILIATIONS并将Member_Status字段设置为N.
我正在使用SQL Server Management Studio 2005 Ver.Windows 7上的9.0
SELECT *
FROM NAME
INNER JOIN Name_UD_Affiliations ON NAME.ID=Name_UD_Affiliations.ID
WHERE
NAME_UD_AFFILIATIONS.Member_Status='R' and
Name.Join_Date > '2012-9-1' and
Name.Paid_Thru > '2013-09-01'
Run Code Online (Sandbox Code Playgroud) 我正在制作一个程序来检查数据库中15个信用卡读卡器的交易.该计划的目的是检查读者在预定日期范围内的销售情况,以确保我们没有机械问题.一般来说,如果读者没有在预定日期范围内记录销售,则应检查读者的操作.问题是,因为我"计算"交易数量,它会出现"0"而不是NULL,我只想收到一封电子邮件,如果没有任何交易......我该如何更改如果是这样,从"0"计数到NULL?我的查询如下:
SELECT COUNT(sTerminal) AS Terminal
FROM CC
WHERE (dtCreated BETWEEN @startdate AND @enddate) AND (sTerminal = 'Swiper 1')
Run Code Online (Sandbox Code Playgroud) 我使用datatime数据类型在数据库中设置日期但它提供了完整的数据时间和小时和分钟我想要设置的日期格式为dd-mm-yyyy
好的,我有下表.
Name ID Website
Aaron | 2305 | CoolSave1
Aaron | 8464 | DiscoWorld1
Adriana | 2956 | NewCin1
Adriana | 5991 | NewCin2
Adriana | 4563 NewCin3
Run Code Online (Sandbox Code Playgroud)
我想将其转换为以下方式.
Adriana | 2956 | NewCin1 | 5991 | NewCin2 | 4563 | NewCin3
Aaron | 2305 | CoolSave1 | 8464 | DiscoWorld | NULL | NULL
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在尝试从第一个表中获取名字,并使用与该名称关联的所有ID /网站创建一行.问题是,有可变数量的网站可能与每个名称相关联.为了解决这个问题,我想制作一个表格,其中字段数等于最大行项目,然后对于后续的行项目,插入一个没有足够数据的NULL.
我有一个Microsoft SQL表,tbl其中包含以下记录:
clmn1 (smallint NOT NULL) = '2012'
clmn2 (char (10) NOT NULL) = '620100'
clmn3 (char (1) NOT NULL) = ''
Run Code Online (Sandbox Code Playgroud)
当我执行以下查询时:
select *
from tbl with (rowlock)
where clmn1 = 2012 and clmn2 = '620100' and clmn3 <= ' '
Run Code Online (Sandbox Code Playgroud)
然后找到上面的行,这是正确的.
但是在执行以下查询时:
select *
from tbl with (rowlock)
where clmn1 = 2012 and clmn2 = '620100' and clmn3 < ' '
Run Code Online (Sandbox Code Playgroud)
然后它找不到任何不正常的东西.因为clmn3是空的('').'' < ' ' = true.
必须使用这种2 sql查询格式,因为我们正在使用Xisam将自己的sql查询转换为上述sql查询格式.
我想展示薪水最高的球员.
select max(Salary) as highest_salary, p.[Last name]
from tbl_PlayersTable as p, tbl_team as t
where p.Team = t.TeamID
and TeamID = 1000
Group by p.[Last name]
Run Code Online (Sandbox Code Playgroud)
输出是:
highest_salary Last Name
8000 Bosh
7000 Wade
6000 James
Run Code Online (Sandbox Code Playgroud)
我只想表现出来(因为他是薪水最高的球员,因此他有8000名波什).
我是存储过程的新手.
我写了以下存储过程:
create proc sp_TaxBrock
as
BEGIN
Declare @intTax int,@intBrockrage int,@sum int
set @intTax = (select Tax from partyRegister where partyCode = '0L036')
set @intBrockrage = (select brockrage from partyRegister where partyCode = '0L036')
set @sum = @intTax+@intBrockrage
select @sum
print @sum
/*print @intTax+@intBrockrage;*/
go
Run Code Online (Sandbox Code Playgroud)
它导致此错误:
消息102,级别15,状态1,过程sp_TaxBrock,第12行
'@sum'附近的语法不正确.
无法找到错误.
我尝试;在不同位置添加分号(),但错误仍然相同.
请帮我.
我有一个包含密码的列.我想做的只是用标准密码字符(*)掩盖密码或者只是隐藏...
提前致谢....
sql-server-2005 ×10
sql ×7
sql-server ×5
asp.net-mvc ×1
c# ×1
pivot ×1
t-sql ×1
triggers ×1
unpivot ×1