我使用Access 2010作为SQL Server 2008上数据库的前端。我有一个日期字段,存储为nvarchar(50)。我在文本字段DateHr 12/04/11 16:49:23
中有以下值,它应转换为April 11, 2012 4:49 PM
(与创建记录的日期和时间一样。)。
我无法将字段的数据类型更改为DateTime,因为它会更加混乱日期(Ex. 12/4/2011 4:49:23 PM
)。我无法改变输入记录的方式。
我需要以“mm / dd / yy”格式显示此字段,并且能够以此格式执行where子句。
我尝试过以下操作只是为了查看它是否正确显示但dtDate是否显示11/12/04
:
Select (Format(CDate([DateHr]),"yy/mm/dd")) as dtDate
答案 0 :(得分:2)
如果您需要在访问权限中执行转换,则可以尝试以下任一方法:
Select Mid([DateHr],4,2) & "/" & Mid([DateHr],1,2) & "/" & Mid([DateHr],7,2) as dtDate
我认为这将以字符串格式提供日期,否则您可以尝试以下方式以有效的日期格式获取日期:
Select Format(DateSerial(Mid([DateHr],7,2),Mid([DateHr],4,2),Mid([DateHr],1,2)),"MM/DD/YYYY") as dtDate
答案 1 :(得分:1)
创建SQL Server视图以将日期文本的年份组件展开为4位数。然后SELECT CDate([DateHr]) AS dtDate FROM YourView
应该从Access端工作。但是,让视图将日期文本转换为实际日期类型可能更好......然后您可以直接从Access使用它而无需CDate()
。