0
我在表這樣的情況:的PostgreSQL,獲得的最小和最大的日期從文本列
1 01.02.2011
2 05.01.2011
3 06.03.2012
4 07.08.2011
5 04.03.2013
6 06.08.2011
7
8 02.02.2013
9 04.06.2010
10 10.10.2012
11 04.04.2012
其中第一列是ID(INT)和第二列是TEXT其中可以寫入格式日期「DD .mm.yyyy」。
我想獲得:
1)整個表格中輸入的最低日期和整個表格中的最高輸入日期。
2)最低進入2012年,最高輸入的日期日期2012年
最低和最高的日期在一年可能是相同的(如2010年)或字段可能是空的(如第7行)。
我打算使用TO_TIMESTAMP,但未成功。 例如:
SELECT (TO_TIMESTAMP(mydatetxt, 'DD.MM.YYYY'))
FROM " & myTable & "
ORDER BY (TO_TIMESTAMP(mydatetxt, 'DD.MM.YYYY')) ASC LIMIT 1
此外與BETWEEN我沒有得到想要的結果。
如何寫這兩個查詢?
解決方案:
感謝您的所有建議。
伊戈爾的解決方案對我來說是最合適和最簡單的。
Dim sqlText As String = "SELECT min(to_date(nullif(mydate,''), 'DD.MM.YYYY')) FROM " & mytable
cmd1 = New NpgsqlCommand(sqlText, conn)
min = CDate(cmd1.ExecuteScalar())
If Not IsDate(min) Then
min = CType(CDate("01.01." & myyear) & " 00:00:00", Date)
End If
fromdate = CType(CDate(min), Date)
sqlText = "SELECT max(to_date(mydate, 'DD.MM.YYYY')) FROM " & mytable
cmd1 = New NpgsqlCommand(sqlText, conn)
max = CDate(cmd1.ExecuteScalar())
If Not IsDate(max) Then
max = CType(CDate("31.12." & myyear) & " 23:59:59.9999", Date)
End If
todate = CType(CDate(max), Date)
你能告訴你的查詢,並告訴他們爲什麼不工作? –
我使用示例查詢更新了您的請求中獲取最小日期的問題。我不知道爲什麼我的查詢不起作用。如果我知道,那麼不需要幫助。 –
查詢如何「不工作」?任何錯誤消息?錯誤的結果?還有別的嗎? –