Tag: tsql

在SQL Server中比较datestring和date时间?

在SQL Server中,我有一个包含时间元素的DATETIME列。 例: '14 AUG 2008 14:23:019' 什么是最好的方法,只select特定的一天的logging,忽略时间部分? 示例:(不安全,因为它不匹配时间部分并且不返回任何行) DECLARE @p_date DATETIME SET @p_date = CONVERT( DATETIME, '14 AUG 2008', 106 ) SELECT * FROM table1 WHERE column_datetime = @p_date 注意:鉴于这个网站也是logging笔记和技术,你拿起,然后忘记,我要发布我自己的答案这个问题作为date时间在MSSQL中的东西可能是我在SQLBOL查找最多的话题。 更新澄清的例子更具体。 编辑对不起,但我不得不下降错误的答案(回答错误的结果)。 @Jorrit:在WHERE (date>'20080813' AND date<'20080815')将返回13日和14日。 @wearejimbo: closures,但没有雪茄! 徽章授予你。 您错过了14/08/2008 23:59:001至23:59:999(即午夜前不到1秒)的logging。

TSQLdate时间ISO 8601

我已经给出了一个需要ISO 8601date格式的规范,是否有人知道转换代码或获得这两个例子的方法: ISO 8601 Extended Date 2000-01-14T13:42Z ISO 8601 Basic Date 20090123T105321Z

如何计算一个字符在SQL列中出现的次数?

对于我在SQL数据库中的用户日志表,我跟踪报告请求的一些参数。 该报告允许将多个ID传递给它,并将所有这些ID存储在数据库列中的单个列中。 如果这是一个规范化的数据集合,肯定会有一个额外的表设置,但是这是被inheritance的… 现在我已经被要求简短地记下一个报告运行的次数,超过2个ID被传递给它。 我可以很容易地得到有多个报告请求的logging数,因为它们都包含一个逗号。 接下来我要做的就是统计一个列中逗号的出现次数。 你如何在SQL中做到这一点? –count the number of times more than 1 report was requested in the record select count(*) as cnt from [table] where RequestedReportParams Like '%,%'

在两个数据库之间添加外键关系

我在两个不同的数据库中有两个表。 在table1(它在database1中)有一个名为column1的列,它是一个主键。 现在在table2(它在databse2中)有一个名为coulmn2的列,我想把它作为一个外键添加。 我试图添加它,它给了我以下错误: 消息1763,级别16,状态0,行1 跨数据库外键引用不受支持。 外键Database2.table2。 消息1750,级别16,状态0,行1 无法创build约束。 查看以前的错误。 我该怎么做既然这些表在不同的数据库中。

SQL Server从date时间中删除毫秒

select * from table where date > '2010-07-20 03:21:52' 我希望不会给我任何结果…除了我得到一个logging2010-07-20 03:21:52.577 我怎样才能使查询忽略毫秒?

SQL Server – 创build一个数据库表的副本,并将其放在同一个数据库?

我有一个数据库数据库中的表ABC。 我想在同一个数据库中创build名称为ABC_1,ABC_2,ABC_3的ABC副本。 我如何使用Management Studio(最好)或SQL查询来做到这一点? 这是针对SQL Server 2008 R2的。

在包含逗号分隔值的列中的值

您好我想知道如何编写SQL Server 2008的SQL语句,select条目的列中包含一个值,现在列中的值是一个逗号分隔列表(通常 – 可能只有一个条目(并没有前导逗号) )所以检查的是“这个值是否包含在列表中的某处?”,例如: COLUMN = Cat, Dog, Sparrow, Trout, Cow, Seahorse Does COLUMN contain Cat? YES Does COLUMN contain horse? NO Does COLUMN contain Sheep? NO 要么 COLUMN = Mouse Does COLUMN contain Hare? NO Does COLUMN contain Mouse? YES 等等 我以为我可以使用“IN”关键字 SELECT id_column FROM table_name WHERE 'Cat' IN COLUMN 但是这不起作用,因为您似乎只能使用它来检查列是否包含一系列逗号分隔值之一。 我也不能使用CONTAINS()或'LIKE',因为在上面的例子中会返回'horse'的值,因为整个string包含'Seahorse'中的马,我不能search针头和逗号(if我正在寻找“马”search将是“马”),如果条目是在列表的末尾? […]

SQL:结合从多个表中select计数(*)

如何将来自不同表格的多个select计数(*)合并为一个返回? 我有一个类似的这个职位 sitiuation 但我想要一个回报。 我试了联盟所有,但它吐了3个单独的计数行。 你怎么把它们合并成一个? select count(*) from foo1 where ID = '00123244552000258' union all select count(*) from foo2 where ID = '00123244552000258' union all select count(*) from foo3 where ID = '00123244552000258' 编辑:我在MS SQL 2005

为什么从SQL Server 2008及更高版本中不支持generics派生的CLRtypes?

以下代码实现了从generics(SortedDictionary)派生的UDT: [Serializable] [Microsoft.SqlServer.Server.SqlUserDefinedType(Format.UserDefined, MaxByteSize = 8000)] public class udtMassSpectra : SortedDictionary<float, float>, INullable, IBinarySerialize, ICloneable, IDisposable { … } 创buildtypes(T-SQL): CREATE TYPE dbo.udtMassSpectra EXTERNAL NAME MassSpectra.udtMassSpectra; 抛出exception: 程序集“MassSpectra”中的消息10331,级别16,状态1,行1types“udtMassSpectra”派生自CLRtypes不支持的genericstypes。 是什么原因? 除了在私有成员中隐藏基类之外,是否有任何解决方法? 此代码在SQL Server 2005上正常工作。

在Sql Server中改变用户定义的types

我在DB中创build了几个用户定义的types,如下所示 CREATE TYPE [dbo].[StringID] FROM [nvarchar](20) NOT NULL 并分配到各种表格。 我在db中的表格是在不同的模式(不仅是dbo) 但我意识到我需要更大的领域,我需要改变,例如从nvarchar增加到nvarchar,但没有ALTER TYPE语句 我需要一个脚本临时表/光标任何和保存在那里我的types使用的所有表和字段。 然后将现有字段更改为基本types – 例如从CustID [StringID]到CustID [nvarchar(20)]。 删除用户types并用新types重新创build – 例如nvarchar(50),最后将字段设置为用户types 我没有关于types的规则定义,所以不必删除规则并重新添加它们 我不是很熟悉T-Sql,所以任何帮助表示赞赏。