如何将字符串变量转换为sql-server中的datetime变量? [英] how convert string variable to datetime variable in sql-server?

查看:236
本文介绍了如何将字符串变量转换为sql-server中的datetime变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我比较新的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
从发票
其中order_date @ startdate和@enddate

我不断得到的错误是:


从字符串转换datetime时转换失败。


我该如何解决?

解决方案

指定您的 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
从发票
其中@startdate和@enddate之间的order_date


I'm relatively new to sql-server; I'm trying to have a start-date and end-date pulled from a form-variable as string then convert it into datetime (yyyy-mm-dd) format and I can't seem to find anything that works. Attempted code and resulting error is below. Any advice would be appreciated.

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

The error I keep getting is:

Conversion failed when converting datetime from character string.

How do I fix this?

解决方案

specify a length for your 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

这篇关于如何将字符串变量转换为sql-server中的datetime变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆