2

SQL Server2008上のデータベースのフロントエンドとしてAccess2010を使用しています。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

アクセスで変換を実行する必要がある場合は、次のいずれかを試すことができます。

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 に答える