sqlserver 字符串转日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 字符串转日期相关的知识,希望对你有一定的参考价值。

declare @exec_cur cursor;
declare @cperson varchar(20),@cpersonName varchar(20), @total int;
declare @bdate date = convert(datetime,'2014-06-01'),
@edate date = convert(datetime,'2014-06-30');

exec proc_lsall (@bdate, @edate, @cur = @exec_cur output);--调用存储过程
fetch next from @exec_cur into @cperson, @cpersonName, @total;
while (@@fetch_status = 0)
begin
fetch next from @exec_cur into @cperson, @cpersonName, @total;
print 'id: ' + convert(varchar, @cperson) + ', name: ' + @cpersonName + ', vdate: ' + convert(char, @total);
end
close @exec_cur;
deallocate @exec_cur;--删除游标
---------------------------------------------------------------------------
报错:消息 102,级别 15,状态 1,第 7 行
'@bdate' 附近有语法错误。

参考技术A 不知道你的字符串类型的日期是什么样子的,下面有一个例子:
Test_OldTable是包含19990101等nvarchar数据类型的表,
Test_NewTable是包含DateTime数据类型的表
sql语句:
INSERT INTO Test_NewTable(NewDate)
SELECT CAST(OldDate AS DateTime)
FROM Test_OldTable

其他的方法还有很多,给你个链接,看看吧,网上多找找http://zhidao.baidu.com/question/97171114.html
参考技术B 不知道你的字符串类型的日期是什么样子的,下面有一个例子:
Test_OldTable是包含19990101等nvarchar数据类型的表,
Test_NewTable是包含DateTime数据类型的表
sql语句:
INSERT INTO Test_NewTable(NewDate)
SELECT CAST(OldDate AS DateTime)
FROM Test_OldTable
参考技术C 先定义变量,再用set给变量赋值
declare @bdate date
set @bdate = convert(datetime,'2014-06-01')
参考技术D 改成:
exec proc_lsall @bdate, @edate, @cur = @exec_cur output;--调用存储过程
试试
第5个回答  2014-06-30 declare @bdate date

set @bdate = convert(datetime,'2014-06-01')
declare @edate date

set @edate = convert(datetime,'2014-06-30');本回答被提问者采纳

以上是关于sqlserver 字符串转日期的主要内容,如果未能解决你的问题,请参考以下文章

SQLSERVER 字符串转时间格式

sqlserver 怎么转成字符串

Sql字符串转日期格式的问题

sqlserver中如何把数字转换成时间的格式?

如何把sqlserver中的列转换成行,行转换成列,显示

sqlserver日期函数