相关疑难解决方法(0)

SQL中的CAST和CONVERT是一样的吗?

可能重复:
T-SQL强制转换与转换

SQL 之间CASTCONVERTSQL 之间的主要区别是什么导致数据类型转换?

sql database

27
推荐指数
2
解决办法
5万
查看次数

将nvarchar值转换为数据类型int时转换失败

我创建了下面列出的过程:

CREATE procedure getdata
(
    @ID int,
    @frm varchar(250),
    @to varchar(250)
)
AS
BEGIN

DECLARE @SQL nvarchar(500)


set @SQL = 'select'
set @SQL = @SQL + ' EmpName, Address, Salary from Emp_Tb where 1=1 '

IF (@ID <> '' and @ID is not null)     
  Begin     
   SET @sql=@sql+' AND Emp_Id_Pk=' +@ID   
  End 
END

print @sql
--execute (@sql)
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法执行它:

**execute getdata 3,'','';**
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

将nvarchar值'select EmpName,Address,Salary从Emp_Tb转换为1 = 1 AND Emp_Id_Pk ='转换为数据类型int时转换失败

请帮忙.

sql

21
推荐指数
2
解决办法
19万
查看次数

位字段上MAX运算符的替代方案

我的表具有几个位字段的权限.我想在此表中对行进行分组,并获得具有最高权限的结果.所以用这个表:

UserId, Permisssion1,Permission2, Permisssion3 
Run Code Online (Sandbox Code Playgroud)

这对于行
13,1,0,0
13,0,1,0

我想得到:
13,1,1,0

问题是运算符MAX不能在位字段上工作.如何以有效的方式做到这一点?(不使用CASE)

sql group-by sql-server-2008

19
推荐指数
1
解决办法
1万
查看次数

从SQL Server中的SELECT获取布尔值到C#中的bool?

我在SELECT中有这个代码:

SELECT  A.CompletedDate,
    CASE
        WHEN (@AdminTestId IS NULL AND @UserTestId IS NULL) THEN 0
        WHEN (@AdminTestId = temp.AdminTestId AND @UserTestId = A.UserTestId) THEN 1
        WHEN (@AdminTestId = temp.AdminTestId AND @UserTestId IS NULL) THEN 1
    ELSE 0
    END AS [Current], 
Run Code Online (Sandbox Code Playgroud)

在我的ASP.NET DTO中我有:

public partial class GetTestsDTO
{
    public bool? GradePass { get; set; }
    // the following line is what is giving the error. If I remove
    // the line it will not try to convert the data and there is …
Run Code Online (Sandbox Code Playgroud)

c# sql-server asp.net

5
推荐指数
1
解决办法
5004
查看次数

datetime Cast或Convert?

选择什么:CastConvert日期时间(Microsoft SQL Server)?


我看过MSDN规范.乍一看似乎除了语法之外没有区别:

CAST的语法:

CAST ( expression AS data_type [ ( length ) ] )
Run Code Online (Sandbox Code Playgroud)

CONVERT的语法:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Run Code Online (Sandbox Code Playgroud)

CAST是ANSI标准,这使得它更便于携带防空火炮不同的数据库平台.

sql sql-server

3
推荐指数
1
解决办法
9万
查看次数

编写此查询以将日期添加到日期的最简洁方法

我有一个DateTime字段.我想忽略该字段上的时间并添加指定的小时.

这是我正在寻找的一个例子,其中@h可以是0到23之间的任何值.(为了简单起见,我使用getdate()而不是我的表中的字段).

declare @h int = 8
select cast(cast(cast(getdate() as date) as nvarchar(50)) + ' ' + CAST(@h as nvarchar(2)) + ':00' as datetime)
Run Code Online (Sandbox Code Playgroud)

我怎么能更简单地写这个?请记住,我对可读性/可维护性比对速度更感兴趣.

sql sql-server

2
推荐指数
1
解决办法
107
查看次数

标签 统计

sql ×5

sql-server ×3

asp.net ×1

c# ×1

database ×1

group-by ×1

sql-server-2008 ×1