2

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

4

2 回答 2

2

如果您需要在 access 中进行转换,那么您可以尝试以下任一方法:

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
于 2012-04-12T14:05:10.170 回答
1

创建一个 SQL Server 视图以将日期文本的年份部分扩展为 4 位数字。然后SELECT CDate([DateHr]) AS dtDate FROM YourView应该从访问端工作。但是,让视图将日期文本转换为实际日期类型可能会更好......然后您可以直接从 Access 使用它,而无需CDate().

于 2012-04-12T13:43:39.083 回答