3

このようなアクセス テーブルがあります (日付の形式は mm/dd/yyyy です)

col_1_id-----col_2

1 1/1/2003

2

3 1/5/2009

4

5 2008 年 3 月 2 日

出力は、Co_1 が 2 から 4 の間のテーブルである必要があります (空白のセルは空白である必要があります)

2

3 1/5/2009

4

SQLクエリで試しました。空白のセルに「なし」と出力されます。空白のセルに空白が必要です。もう1つのことは、この値を別のテーブルに挿入しようとすると、日付値を持つ行のみが挿入されることです。日付のない行を取得すると、コードは停止します。行をそのまま挿入する必要があります。

私はpythonで試しました

import pyodbc
DBfile = Data.mdb
conn = pyodbc.connect ('Driver = {Microsoft Access Driver (*.mdb)}; DBQ =' +DBfile
cursor = conn.cursor()

sql_table = "CREATE TABLE Table_new (Col_1 integer, Col_2 Date)"
cursor.execute.sql_table()
conn.commit()

i = 0
while i => 2 and i <= 4:
    sql = "INSERT INTO New_Table (Col_1, Col_2)VALUES ('%s', '%s')" % (A[i][0], A[i][1])
    cursor.execute(sql)
    conn.commit()
i = i + 1
cursor.close
conn.close

`

4

2 に答える 2

3

whichを使用して値を指示する代わりに、A[i][x]単純にORロジックを追加して、 の可能性を排除してみませんかNone

「空白」のままにしたいセル(空の文字列を意味すると仮定)について、たとえば、次のようA[i][1]にします

A[i][1] or ""

""セルがあなたに与える場合、空の文字列が生成されますNone

于 2013-07-04T18:19:24.673 に答える
0

の文字列表現Noneは実際'None'には であり、空の文字列ではありません。試す:

"... ('%s', '%s')" % (A[i][0], A[i][1] if A[i][1] else '')
于 2013-07-04T18:19:42.740 に答える