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