select - MS access 选择查询中使用 DatePart 进行数据转换

标签 select ms-access-2007 insert-into

我正在尝试在 MS Access 选择查询中使用 DatePart() 从最初采用字符串形式的日期中提取月份和年份(作为数字)


“YYYY-MM-DD HH:NN:SS.0000000”


其他人编写的初始代码是这样的:

DatePart("m", date)
DatePart("yyyy", date)

但这导致查询运行时出现“数据类型,条件不匹配”错误,因此我尝试使用 Cdate() 将字符串转换为日期类型。

DatePart("m", Cdate(date))
DatePart("yyyy", Cdate(date))

但是这并没有解决问题。我想知道我的初始日期字符串是否不是 Cdate() 可以转换的形式,或者是否有更简单的方法从日期字符串(例如我的)中提取部分数字日期。

我准备进一步详细说明情况,以防这个问题不完整,但我不希望超出自己。

最佳答案

那些额外的零将是一个问题,你可以说要去掉它们

CDate(Mid(sdate, 1, InStr(sdate, ".") - 1))

然后

DatePart("m", CDate(Mid(sdate, 1, InStr(sdate, ".") - 1)))

但是,您可能会发现仅引用字符串的相应部分会更方便:

aYr = Left(sdate,4)
aMnth = Mid(sdate,6,2)

关于select - MS access 选择查询中使用 DatePart 进行数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14864577/

相关文章:

ms-access - 过滤报告查询

ms-access - MS Access 2007 - 文本框的属性,允许最终用户按回车键返回,而不是下一个

mysql - 如何使用 ON DUPLICATE KEY INSERT INTO...SELECT

SQL Server : multiple inserts into temp table while creating a value for each different insert

mysql - 如果初始表中不存在,则从另一个表插入表 uid

javascript - 在客户端存储数据/<select>

mysql - 带连接的 Count(*)

php - zend 框架连接 3 个表

sql - DateDiff Access 查询返回 #Error

sql - 连接多个表返回重复项