我有一个sql DateTime(ms sql server),想要在没有秒的情况下提取相同的日期:例如2011-11-22 12:14:58.000成为:2011-11-22 12:14:00.000
我怎样才能做到这一点?我想DATEADD与之结合使用,DATEPART但似乎非常容易出错(除了性能问题)
我有一个PostgreSQL数据库,其中一个表快速增长(每个月左右几百万行),所以我想定期将该表的内容存档到一个单独的表中.
我打算使用cron作业每晚执行一个.sql文件,将所有超过一个月的行存档到另一个表中.
我的查询工作正常,但我需要知道如何动态创建一个月前的时间戳.
该time列以格式存储,2013-10-27 06:53:12我需要知道在SQL查询中使用什么来构建恰好一个月前的时间戳.例如,如果今天是2013年10月27日,我希望查询匹配时间<的所有行2013-09-27 00:00:00
我正在努力确保为所有用户分配了特定角色.是否有任何视图或SQL查询来获取此信息?
当我添加<我的xml时,我收到以下错误,
消息9455,级别16,状态1,行6 XML解析:第4行,字符14,非法限定名称字符
如何用这些类型的特殊字符解析xml?
DECLARE @MyXML XML
SET @MyXML = '<SampleXML>
<Colors>
<Color1>W < hite</Color1>
<Color2>Blue</Color2>
<Color3>Black</Color3>
<Color4 Special="Light">Green</Color4>
<Color5>Red</Color5>
</Colors>
<Fruits>
<Fruits1>Apple</Fruits1>
<Fruits2>Pineapple</Fruits2>
<Fruits3>Grapes</Fruits3>
<Fruits4>Melon</Fruits4>
</Fruits>
</SampleXML>'
SELECT
a.b.value('Colors[1]/Color1[1]','varchar(10)') AS Color1,
a.b.value('Colors[1]/Color2[1]','varchar(10)') AS Color2,
a.b.value('Colors[1]/Color3[1]','varchar(10)') AS Color3,
a.b.value('Colors[1]/Color4[1]/@Special','varchar(10)')+' '+
+a.b.value('Colors[1]/Color4[1]','varchar(10)') AS Color4,
a.b.value('Colors[1]/Color5[1]','varchar(10)') AS Color5,
a.b.value('Fruits[1]/Fruits1[1]','varchar(10)') AS Fruits1,
a.b.value('Fruits[1]/Fruits2[1]','varchar(10)') AS Fruits2,
a.b.value('Fruits[1]/Fruits3[1]','varchar(10)') AS Fruits3,
a.b.value('Fruits[1]/Fruits4[1]','varchar(10)') AS Fruits4
FROM @MyXML.nodes('SampleXML') a(b)
Run Code Online (Sandbox Code Playgroud) 我有一个字段的表ID和date,我需要最新的数据分配给一个变量,其中id一些号码.
所以,如果我有日期2011-01-01和2011-02-02地点ID = 1,我需要分配2011-02-02一个变量.
我有一个有两列(date_ID,entry_Date)的表.我想将特定时间段内的所有日期插入到表格中(比如说2002-2030之间的所有日期).有没有办法在SQL-Server中使用循环?
我的公司聘请了一家承包商为我们做一个小项目,他需要从我们的主数据库(SQL Server 2005)中的一个单一视图中选择数据.
我想SQL Server为他创建一个锁定的登录,只需SELECT从"他的"视图中获得权限......而不是别的.
所以我在服务器上创建了一个新用户,然后我就这一个视图给了他许可:
grant select on SpecialView to SpecialUser;
Run Code Online (Sandbox Code Playgroud)
基本上,这工作 - 他看不到任何我们的表和存储过程,无论任何观点,除了"他"的一个.
但:
显然,他的权限会被自动锁定(sys.objects只显示了他具有权限的对象,sp_who只显示了自己的流程等).
所以,我的问题是:
是否可以创建无法访问系统视图和存储过程的用户?
(如果是的话,我做错了什么?)
或者是否有一些理由为什么即使是锁定的用户也需要访问系统视图和存储过程?
编辑:
kevchadders,用户必须为master,model或msdb中没有访问-只与他应该看到的视图的数据库.
但是,要清楚一点:系统视图/特效,用户可以看到的是在数据库中,其中"他"的观点是 ......不是在master数据库中.所以我无法禁用他的所有访问权限,因为他需要从同一个数据库中的一个视图中进行选择.
问题是,即使我明确地只为单一视图,他应该看到,为什么他还是看到了系统的意见/特效以及设置权限?
我在Ms Sql 2008中有2个数据列
uniqueidentifier列作为ID和datetime列,其结果如下.
2011-11-06 18:02:18.030
2011-11-06 18:02:18.373
2011-11-06 18:02:57.560
2011-11-06 18:02:58.593
2011-11-06 18:03:01.717
2011-11-06 18:03:02.373
2011-11-06 18:03:03.407
Run Code Online (Sandbox Code Playgroud)
除了ID列的复杂性.我只对基于om间隔的数据进行分组感兴趣
minutes(1,5,10,15,30)
hours (1,2)
days(1,5,10)
months(1,2)
Run Code Online (Sandbox Code Playgroud)
结果应该是浮动的,否则每个间隔仅产生1个唯一如下
2011-11-06 18:02:00 (1 Minute)
2011-11-06 18:03:00 (1 Minute)
2011-11-06 18:04:00 (1 Minute)
2011-11-06 18:05:00 (1 Minute)
2011-11-06 18:06:00 (1 Minute)
Run Code Online (Sandbox Code Playgroud)
或者每天
2011-11-06 00:00:00 (1 Day)
2011-11-07 00:00:00 (1 Day)
2011-11-08 00:00:00 (1 Day)
2011-11-09 00:00:00 (1 Day)
2011-11-10 00:00:00 (1 Day)
Run Code Online (Sandbox Code Playgroud)
等等
任何建设性的建议都会受到欢迎.
方案是我想在sql server表中加密数据类型为int的列中的财务数字.它是一个很大的应用程序,因此很难将表列数据类型从int更改为任何其他数据类型.
我正在使用sql server 2005和asp.net C#.
对于数据类型为int的列,是否存在双向加密方法?
我可以在sql server 2005或可能的C#方法中使用用户定义的函数吗?
如果我SET ANSI_WARNINGS OFF在一个存储过程中去掉一个警告,它只对该存储过程起作用,对其他存储过程没有影响,这意味着在其他存储过程中,该警告ANSI_WARNINGS仍然存在。如果我想为所有存储过程关闭它怎么办?为什么默认开启?我怎么会知道?
NOCOUNTsql server 中的其他设置(例如,)是否以相同的方式工作?
非常感谢。
如果有人可以与我分享有关这些设置的共同特征的文章,那就太好了。