Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
日期格式化,SQL Server_Sql_Sql Server_Date_Casting_Format - Fatal编程技术网

日期格式化,SQL Server

日期格式化,SQL Server,sql,sql-server,date,casting,format,Sql,Sql Server,Date,Casting,Format,我对我的最终公式有一个问题: ALTER TABLE tempTestProject ADD [T12 Backdated jnls] varchar(50) update tempTestProject set [T12 Backdated jnls] = 'X' where cast([Created Date] as date) > cast([Effective Date] as date) 我得到一个错误: 从字符转换日期和/或时间时转换失败 绳子 现在,在我开始上面的

我对我的最终公式有一个问题:

ALTER TABLE tempTestProject 
ADD [T12 Backdated jnls]  varchar(50)

update tempTestProject
set [T12 Backdated jnls] = 'X' where cast([Created Date] as date) > cast([Effective Date] as date) 
我得到一个错误:

从字符转换日期和/或时间时转换失败 绳子

现在,在我开始上面的内容之前,我必须重新安排我的日期,因为我在处理之前的日期时遇到了问题。为了将我的日期转换成所需的格式,我做了以下工作:(请记住,我的日期是varchar(50),最初的格式是18/01/2014)


希望我解释的足够多,谢谢你的帮助

如果您无法实现注释中所有的好建议,您可以使用
ISDATE
来测试字符串是否可以转换为日期。 编辑: 刚刚注意到你是如何存储日期的。在使用is date之前,请执行此行:

SET DATEFORMAT DMY;

select
case when ISDATE([CREATED DATE]) = 1
  then cast([CREATED DATE] as date)
else null
end as <Your date name here>
设置日期格式DMY;
选择
ISDATE([CREATED DATE])=1时的情况
然后强制转换([创建日期]为日期)
否则无效
结束为

您看到这个问题了吗?不要用字符串存储日期,这是荒谬的。从您发布的内容来看,这不起作用,因为新列中的所有值都将为NULL。1)在数据库中存储日期、时间或日期和时间值时,请使用其中一种日期时间数据类型。2)永远不要创建SQL对象(如表或列)对于包含嵌入空格的名称。3)上述两条规则没有例外。
SET DATEFORMAT DMY;

select
case when ISDATE([CREATED DATE]) = 1
  then cast([CREATED DATE] as date)
else null
end as <Your date name here>