86116


どうすれば狙った並びで抽出できるようになるかご教授頂きたいです。

使用したSQL

[code]

    Dim sql As String
    sql = "SELECT * FROM [sample.csv] WHERE type = '001' ORDER BY dt DESC"
    
[/code]

csvファイルの中身

name | type | dt  
---|---|---  
aaa | 001 | 2021/10/25 9:03:35  
bbb | 001 | 2021/10/25 9:04:19  
ccc | 002 | 2021/10/25 17:33:50  
ddd | 001 | 2021/10/25 17:37:40  
eee | 001 | 2021/10/25 10:24:18  
fff | 002 | 2021/10/25 9:40:31  
ggg | 002 | 2021/10/21 10:43:02  
  
抽出結果

name | type | dt  
---|---|---  
bbb | 001 | 2021/10/25 9:04:19  
aaa | 001 | 2021/10/25 9:03:35  
ddd | 001 | 2021/10/25 17:37:40  
eee | 001 | 2021/10/25 10:24:18  
ggg | 002 | 2021/10/21 10:43:02  
  
この並びで抽出したい

name | type | dt  
---|---|---  
ddd | 001 | 2021/10/25 17:37:40  
eee | 001 | 2021/10/25 10:24:18  
bbb | 001 | 2021/10/25 9:04:19  
aaa | 001 | 2021/10/25 9:03:35


CC BY-SA 4.0
2022-02-03T04:18:02.927
86112
2022-02-04T00:08:25.690
2022-02-03T07:31:23.023
49304
49304
question
sql vba
日時を含むカラムに対してORDER BY ･･･　DESCを使用したのですが、データの並びが降順通りではありません


Text Driver ですか？  
schema.ini を定義して、dt を日付時刻型にするか、SQL中で日付時刻型にして ORDER BY すればよいかと。

「Schema.ini ファイル (テキスト ファイル ドライバー)」  
<https://docs.microsoft.com/ja-jp/sql/odbc/microsoft/schema-ini-file-text-
file-driver?view=sql-server-ver15>

「CSV取込からデータベース登録時の型変換について」  
<https://social.msdn.microsoft.com/Forums/sqlserver/ja-
JP/577381d0-4fa6-4c28-a84d-aba4b7667620/csv214623679612363124251248712540124791250512540124733033137682?forum=csharpgeneralja>


CC BY-SA 4.0
2022-02-03T09:46:17.933
86116
2022-02-03T09:46:17.933
50741
86112
answer


「CSV取込からデータベース登録時の型変換について」をヒントに解決しました。  
実行環境がVBAでしたのでORDER BYで指定したカラム名に対してCDate関数を使うことで目的を達成することが出来ました。

[code]

    Dim sql As String
    sql = "SELECT * FROM [sample.csv] WHERE type = '001' ORDER BY CDate(dt) DESC"
    
[/code]

「Schema.ini ファイル (テキスト ファイル
ドライバー)」は設定の仕方に問題があったのか、これだけでは問題の解決には至りませんでしたがSchema.iniというモノを知りませんでしたので大変勉強になりました。


CC BY-SA 4.0
2022-02-04T00:08:25.690
86130
2022-02-04T00:08:25.690
49304
86112
answer