sql-server-2008 - 如何在 T-SQL 中将 varchar 转换为 datetime?

标签 sql-server-2008 datetime varchar

我正在尝试将数据从table1填充到table2,两者具有相同的列数。

table1 中的所有列均为 varchar 类型。 table2 中的列可以是 varcharintdatetime 等。

我的问题是如何在填充过程中进行转换?

这是我编写的示例查询。我错过了进行转换的部分。另外,我的日期时间的格式是mm/dd/yyyy hh:mm:ss

insert into table2
    select s.acty_id, s.notes_datetime, s.notes_data
    from table1 t right join table2 s 
    on (t.acty_id =s.acty_id and t.notes_datetime =s.notes_datetime)
    where t.acty_id is null

最佳答案

您将使用CAST() or CONVERT()在你的领域:

Declare @dt varchar(20)
set @dt = '08-12-2012 10:15:10'
select convert(datetime, @dt, 101)

对于您的查询,您将执行以下操作:

insert into table2
select s.acty_id, s.notes_datetime, s.notes_data
from table1 t 
right join table2 s 
    on t.acty_id =s.acty_id 
    and convert(datetime, t.notes_datetime, 101) = s.notes_datetime
where t.acty_id is null

关于sql-server-2008 - 如何在 T-SQL 中将 varchar 转换为 datetime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12099059/

相关文章:

java - 如何获取上个月的第一个日期和最后一个日期? ( java )

Django从日期时间开始按日期分组

php - SQL 查询不打印 varchar/text 列

sql-server - 使用查询或存储过程延迟 SQL Server 2000 查询直到处理器利用率低于 50%?

sql-server - 如何刷新 SQL Server 中的 C# CLR 代码(程序集)?

c# - 具有默认列名的sql server CLR标量函数

datetime - 1339698600000 = 2012 年 6 月 15 日的日期格式是什么?

mysql - 如何使用富文本框保持文本格式?

sql-server - 在 SQL Server 2012 中将 varbinary() 转换为 varchar(max) 时如何编码特定语言的字符?

java - 创建到sql server 2008的java连接