【问题标题】:how convert string variable to datetime variable in sql-server?如何在 sql-server 中将字符串变量转换为日期时间变量?
【发布时间】:2012-10-03 10:37:03
【问题描述】:

我对 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

我不断收到的错误是:

从字符串转换日期时间时转换失败。

我该如何解决这个问题?

【问题讨论】:

标签: tsql datetime varchar


【解决方案1】:

为您的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

【讨论】:

    【解决方案2】:

    你不必强制转换

    declare @startdate varchar(50)
    declare @enddate varchar(50)
    declare @start datetime = @startdate, @end datetime = @enddate
    select @start, @end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      相关资源
      最近更新 更多