Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 如何在where子句中将十进制转换为DateTime_Sql_Sql Server_Datetime_Decimal_Converter - Fatal编程技术网

Sql 如何在where子句中将十进制转换为DateTime

Sql 如何在where子句中将十进制转换为DateTime,sql,sql-server,datetime,decimal,converter,Sql,Sql Server,Datetime,Decimal,Converter,我正在尝试将十进制DateTime值转换为DateTime数据类型,并检查select查询中的条件 SELECT * FROM CLBALTRNTBL WHERE CONVERT(DATETIME,LSTDAT) >= @sDt AND CONVERT(DATETIME,LSTDAT) <= @eDt 我在一个存储过程中这样做。而@sDt和@eDt是DateTime变量。LSTDAT的格式为yyyyMMddie20120317 但是如果我直接输入LSTDAT列,例如:

我正在尝试将十进制DateTime值转换为DateTime数据类型,并检查select查询中的条件

SELECT * FROM CLBALTRNTBL WHERE CONVERT(DATETIME,LSTDAT) >= @sDt 
      AND CONVERT(DATETIME,LSTDAT) <= @eDt
我在一个存储过程中这样做。而
@sDt
@eDt
DateTime
变量。
LSTDAT
的格式为
yyyyMMdd
ie
20120317

但是如果我直接输入
LSTDAT
列,例如:
20130805
,则执行查询。但专栏里怎么了

你能帮我个忙吗?

从CLBALTRNTBL中选择*其中LSTDAT>=convert(字符(8),@sDt,112)
SELECT * FROM CLBALTRNTBL WHERE LSTDAT >= convert(char(8),@sDt, 112) 
AND CONVERT(DATETIME,LSTDAT) <= convert(char(8),@eDt, 112)
和CONVERT(DATETIME,LSTDAT)
从CLBALTRNTBL中选择*其中LSTDAT>=CONVERT(char(8),@sDt,112)
和CONVERT(DATETIME,LSTDAT)
从CLBALTRNTBL中选择*其中CONVERT(DATETIME,LSTDAT)>=@sDt
和CONVERT(DATETIME,CONVERT(VarChar(8),LSTDAT),112)
从CLBALTRNTBL中选择*其中CONVERT(DATETIME,LSTDAT)>=@sDt
和CONVERT(DATETIME,CONVERT(VarChar(8),LSTDAT),112)试试这个:

SELECT *
FROM CLBALTRNTBL
WHERE CONVERT(DATETIME, CONVERT(VARCHAR(8), LSTDAT), 112) >= @sDt
    AND CONVERT(DATETIME, CONVERT(VARCHAR(8), LSTDAT), 112) <= @eDt
选择*
来自CLBALTRNTBL
其中CONVERT(DATETIME,CONVERT(VARCHAR(8),LSTDAT),112)>=@sDt
和CONVERT(DATETIME,CONVERT(VARCHAR(8),LSTDAT),112)试试这个:

SELECT *
FROM CLBALTRNTBL
WHERE CONVERT(DATETIME, CONVERT(VARCHAR(8), LSTDAT), 112) >= @sDt
    AND CONVERT(DATETIME, CONVERT(VARCHAR(8), LSTDAT), 112) <= @eDt
选择*
来自CLBALTRNTBL
其中CONVERT(DATETIME,CONVERT(VARCHAR(8),LSTDAT),112)>=@sDt

和CONVERT(DATETIME,CONVERT(VARCHAR(8),LSTDAT),112)转换变量并与列进行比较比转换列更有效

SELECT * 
FROM CLBALTRNTBL 
WHERE LSTDAT >= CONVERT(INT,CONVERT(NVARCHAR(8),@sDt,112))
  AND LSTDAT <= CONVERT(INT,CONVERT(NVARCHAR(8),@eDt,112))
选择*
来自CLBALTRNTBL
其中LSTDAT>=CONVERT(INT,CONVERT(NVARCHAR(8),@sDt,112))

LSTDAT转换变量并与列进行比较比转换列更有效

SELECT * 
FROM CLBALTRNTBL 
WHERE LSTDAT >= CONVERT(INT,CONVERT(NVARCHAR(8),@sDt,112))
  AND LSTDAT <= CONVERT(INT,CONVERT(NVARCHAR(8),@eDt,112))
选择*
来自CLBALTRNTBL
其中LSTDAT>=CONVERT(INT,CONVERT(NVARCHAR(8),@sDt,112))

我认为在SPI之前存在
Set DateFormat
我认为在SPI之前存在
Set DateFormat
我是twit应该是varchar(8)我是twit应该是varchar(8)