日期操作作为文本字段

时间:2012-04-12 12:29:23

标签: sql ms-access

我使用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

2 个答案:

答案 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()