通过运行 SQL 查询在 MS Access 2012 上更改年份日期格式的错误

Posted

技术标签:

【中文标题】通过运行 SQL 查询在 MS Access 2012 上更改年份日期格式的错误【英文标题】:error of change a year date format on MS Access 2012 by running a SQL query 【发布时间】:2014-10-13 16:40:30 【问题描述】:

我正在 win 7 上开发 Access 2012。 在表格中,我需要将年份日期格式从“1-Jan-06”更改为 2006,从“1-Jan-90”更改为 1990。我只需要年份。

这是我的查询

SELECT  *, 
CASE 
   WHEN CAST(right(year_date,2) , INT) <= 12 
   THEN 2000 + CAST(right(year_date,2) , INT) 
   ELSE 1900 + CAST(right(year_date,2) , INT) 
 END
FROM my_table;

我收到错误:

'CASE -- END' 的查询表达式中存在语法错误(缺少运算符)。

【问题讨论】:

Does MS Access support "CASE WHEN" clause if connect with ODBC? 的可能重复项 【参考方案1】:

Access SQL 不支持CASE WHENCAST

在 Access 中,您可以使用 IIf()CInt() 执行您对 CASE WHENCAST 的预期操作。

SELECT 
    IIf(CInt(Right(year_date, 2)) <= 12, 2000, 1900)
        + CInt(Right(year_date, 2))
FROM my_table;

【讨论】:

以上是关于通过运行 SQL 查询在 MS Access 2012 上更改年份日期格式的错误的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 2007 查询不在 SQL Server 2008 上运行

通过 ODBC 连接到 SQL Server 的 Access 中的 MS SQL 查询

ODBC 查询在 MS Access 中有效,但在 SQL Server 中超时

强制 MS Access 将完整查询发送到 SQL 服务器

使用 SQL 在 Ms-access 查询中运行 Total

SQL 查询和 MS Access 查询返回不同的数据