Sql 使用当前_时间戳结果在insert INTO语句中插入

Sql 使用当前_时间戳结果在insert INTO语句中插入,sql,sql-server,timestamp,Sql,Sql Server,Timestamp,我试图执行以下查询: DECLARE @MyValue DATETIME SET @MyValue = CAST((SELECT CURRENT_TIMESTAMP) as DATETIME) INSERT INTO Person (Gender,Name, JoinDate) VALUES ('M','Alfred',@MyValue) 但是SQL Server不断抛出以下错误: Msg 241,16级,状态1,程序插入当前时间,第8行 从字符转换日期和/或时间时转换失败 绳子 我已经尝试过

我试图执行以下查询:

DECLARE @MyValue DATETIME
SET @MyValue = CAST((SELECT CURRENT_TIMESTAMP) as DATETIME)
INSERT INTO Person (Gender,Name, JoinDate)
VALUES ('M','Alfred',@MyValue)
但是SQL Server不断抛出以下错误:

Msg 241,16级,状态1,程序插入当前时间,第8行 从字符转换日期和/或时间时转换失败 绳子


我已经尝试过很多其他的方法,但似乎没有一个能解决这个问题。有什么解决办法吗?

你能把当前的时间戳放进你的插页中,不用强制转换吗? 这对我很有用:

create table flar ( thetime datetime);
insert into flar values( CURRENT_TIMESTAMP);
只要这样做:

INSERT INTO Person (Gender,Name, JoinDate)
VALUES ('M','Alfred',getdate())
或者这个:

INSERT INTO Person (Gender,Name, JoinDate)
VALUES ('M','Alfred',current_timestamp)

JoinDate是字符串/varchar数据类型吗?如果是这样,您需要将其转换为字符串,而不是尝试在字符串字段中存储日期时间值


看看这个:

不。已经试过了,同样的错误(msg241,level16,state1)我在运行SQLServerManagementStudio窗口后从中复制了它。SQL server 10.50版。目标列的数据类型是什么?能否显示表
Person
的架构?如果将
JoinDate
指定为
DateTime
,它对我来说是正常工作的。这表明你没有告诉我们需要知道的一切。JoinDate是一种DateTime类型。奇怪的是,我在VS 2012中遇到类似错误的唯一方法是混合数据类型。作为DateTime列没有问题,可以为表添加DDL吗?DDL是什么意思?问题出在SQL Server层,而不是Visual Studio应用程序中。DDL(数据定义语言)是用于在SQL ex中构建表的代码:我要查找的是列的数据类型,因为根据在该线程中找到的一些结果,它们似乎是导致问题的原因。