2013-03-06 352 views
0

我需要從日期時間fieldA中提取月份,然後將結果作爲整數存入同一個表中的fieldB中IF fieldB爲空。SQL:如何從日期時間字段提取月份

eg)1988-02-03 00:00:00.000我需要提取02並將結果放入另一個字段,只有當該字段爲空時。

我想這將最終成爲一個存儲過程。

+0

「我需要提取02「部分不清楚,你;重新更新兩個領域的任何條件? – Sunny 2013-03-06 17:52:28

+0

這裏的答案比提出的重複問題更完整,因爲它還包括如何更新字段和檢查空字段。 – mechalaris 2013-03-07 11:31:45

回答

5

使用MONTH()

UPDATE your_table 
SET some_column = MONTH(date_column) 
WHERE some_column IS NULL 
+0

...假設02實際上是月份,並且日期格式不是'YYYY-DD-MM' – swasheck 2013-03-06 18:31:57

1

MONTH(fieldA)DATEPART(M, fieldA)

1

SQL Server有一個內置的函數調用month()將返回月份的日期和時間戳記數據類型

UPDATE yourtable 
SET newcolumn = month(columnname) 
WHERE newcolumn IS NULL 
+1

它不會**在'timestamp'數據類型上工作,因爲它們不代表實際**日期**本身...... – 2013-03-06 19:43:24

+0

由於@marc_s評論說,'timestamp'不是日期或日期時間。這個名字是如此巨大的混淆,以至於他們不贊成:* [** timestamp **語法已被棄用。此功能將在未來版本的Microsoft SQL Server中刪除。](http://msdn.microsoft.com/zh-cn/library/ms182776.aspx)** – 2013-03-06 19:54:58

相關問題