2011-01-24 106 views
17

Tôi gặp sự cố khi chuyển đổi dấu thời gian Unix thành dấu thời gian máy chủ sql.chuyển đổi dấu thời gian Epoch sang máy chủ sql (định dạng có thể đọc được)

Tôi có dữ liệu trong bảng excel và tôi sẽ nhập dữ liệu đó thông qua một công cụ. Vì vậy, tôi đang tìm một mã hoặc cú pháp có thể chuyển đổi dấu thời gian Epoch đó thành dấu thời gian máy chủ sql.

Tôi có 3 cột khác nhau có cùng định dạng. Làm cách nào tôi có thể thay đổi các giá trị trong các cột đó.

Ví dụ:

  • Epoch timestamp --- 1291388960
  • sql máy chủ timestamp --- 2010-12-03 15: 09: 20,000

Trả lời

17

Tôi có 3 cột khác nhau có cùng định dạng. Làm cách nào tôi có thể thay đổi các giá trị trong các cột đó.

Để cập nhật 3 cột trong một bảng, bạn có thể ghép nối giây DATEADD đến thời đại (ngày 01 tháng 1 năm 1970) với tên cột, tức là

update tbl set 
    datetimecol1 = dateadd(s, epochcol1, '19700101'), 
    datetimecol2 = dateadd(s, epochcol2, '19700101'), 
    datetimecol3 = dateadd(s, epochcol3, '19700101') 

Bạn không thể cập nhật tại chỗ vì một bigint cột cũng không thể là cột ngày giờ. Bạn phải cập nhật chúng thành 3 cột khác.

+0

cảm ơn câu trả lời. Thực sự đánh giá cao nó .... – Shahsra

13

Sử dụng DATEADD function:

SELECT DATEADD(ss, 1291388960, '19700101') 

... chỉ định ngày 1 tháng 1 năm 1970. Trong ví dụ này, nó được cung cấp trong YYYYMMDD f ormat.

DATEADD sẽ trả về kiểu dữ liệu DATETIME, vì vậy nếu bạn đã thiết lập cột & cột - bạn có thể sử dụng hàm INSERT/UPDATE tùy theo nhu cầu của bạn. Cung cấp chi tiết và tôi sẽ làm rõ. Khi bạn có DATETIME để làm việc, bạn có thể sử dụng CAST or CONVERT để định dạng ngày trong TSQL.

+0

cảm ơn đã cho tôi cú pháp nhưng tôi có khoảng 20 triệu bản ghi ..... làm cách nào tôi có thể chuyển đổi tất cả những thứ đó? – Shahsra

+0

@Shahsra: Tùy thuộc vào những gì bạn muốn làm - nếu điều này là tạm thời, hãy sử dụng bảng tạm thời. Nếu không, bạn cần một cột để đưa dữ liệu vào - hoặc bằng cách thêm một cột vào bảng hiện có hoặc một bảng mới được nhân bản từ bản gốc. Bạn phải cung cấp chi tiết. –

+0

cảm ơn rất nhiều ... Tôi đã nhận được giải pháp mà tôi đã thực hiện các thay đổi. Thực sự đánh giá cao sự giúp đỡ của bạn. – Shahsra

Các vấn đề liên quan