t-sql - 如何在sql-server中将字符串变量转换为日期时间变量?

标签 t-sql datetime varchar

我对 sql-server 比较陌生;我试图从表单变量中提取开始日期和结束日期作为字符串,然后将其转换为日期时间(yyyy-mm-dd)格式,但我似乎找不到任何有效的东西。尝试的代码和产生的错误如下。任何建议将不胜感激。

declare @startdate as varchar
declare @enddate as varchar
set @startdate=cast(@startdate as datetime)
set @enddate=cast(@enddate as datetime)

SELECT order_date, inv_no 
from invoices 
where order_date between @startdate and @enddate

我不断收到的错误是:

Conversion failed when converting datetime from character string.

如何解决这个问题?

最佳答案

指定 varchar 的长度:

declare @startdate as varchar(10)
declare @enddate as varchar(10)
set @startdate=cast(@startdate as datetime)
set @enddate=cast(@enddate as datetime)

SELECT order_date, inv_no 
from invoices 
where order_date between @startdate and @enddate

关于t-sql - 如何在sql-server中将字符串变量转换为日期时间变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12862003/

相关文章:

sql - 当表有重复工资时,使用子查询和密集排名的第 n 个最高工资不匹配

SQL 服务器 : GROUP BY datetime without ticks

mysql - 如何导入具有 ~350 列的 SQL 表?

sql - 比较 SQL 中以逗号分隔的字符串

database-design - (n)varchar列选择什么大小?

t-sql - 计算每行有数据的列数

sql-server - SQL Server 中的查询性能

sql - 使用存储过程从 SQL Server 导出图像

java - 如何组合一个时间戳的日期和另一个时间戳的时间?

python - 解析器错误 : hour must be in 0. .23: 09/05/2019 24:00