You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中datetime拼接后格式异常问题及解决

SQL Server生成Cypher语句时日期格式异常的问题与解决

问题现象

我在做学校项目时,需要用SQL Server生成Neo4j的Cypher创建语句。SQL Server中有一张Transfers表,包含datetime类型的DATETIME列:

  • 单独执行查询语句:select DATETIME from TRANSFER,输出格式为2004-05-04 00:00:00.000
  • 但使用concat()拼接生成Cypher语句时,执行:select concat('create (t:Transfer {datetime: ', DATETIME, '});') from TRANSFER,输出却变成了create (t:Transfer {datetime: May 4 2004 12:00AM})

原因分析

使用concat()函数拼接字符串时,SQL Server未被指定日期转换格式,会自动将datetime类型转换为默认的字符串格式,这个默认格式和单独查询时的显示格式不一致,导致生成的Cypher语句日期格式不符合预期。

解决方法

通过convert()函数显式将datetime类型转换为指定格式的字符串,执行以下语句:

select concat('create (t:Transfer {datetime: ', convert(varchar(25), DATETIME, 120), '});') from TRANSFER

执行后输出格式恢复正常:create (t:Transfer {datetime: 2004-05-04 00:00:00});


内容的提问来源于stack exchange,提问作者Diorcula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 23:47:12