2015-06-06 14 views
8
  1. मैं तारीख Epoch Time में संग्रहीत किए गए में युग-समय पर तारीख निकाल सकते हैं और मैं इसे से Date निकालना चाहते हैं। मैंने नीचे दिए गए कोड की कोशिश की और मुझे आउटपुट के रूप में null मिल गया।मैं कैसे BigQuery एसक्यूएल

    date_add((timestamp(Hp.ASSIGN_TIME)), 1970-01-01,"second") as Extracted_date_Epoch 
    

    पूर्व समय स्वरूप (1424184621000000)

  2. एक और सवाल। नीचे दिया गया कोड मुझे दिन सही तरीके से देता है लेकिन व्यवसाय के दिनों में नहीं, यह सभी दिन देता है, क्या एपोक समय में दो बार दो बार बिकने वाले व्यवसायिक दिन मिलना संभव है?

    INTEGER(((Hp.ASSIGN_TIME - Hp.ARRIVAL_TIME)/1000000)/86400) as Days 
    

उत्तर

13

date को timestamp परिवर्तित करने के लिए आप BigQuery date/time functions उपयोग कर सकते हैं:

SELECT TIMESTAMP(1424184621000000)  # 2015-02-17 14:50:21 UTC 
SELECT DATE(TIMESTAMP(1424184621000000)) # 2015-02-17 
SELECT DATE(TIMESTAMP('2015-02-17'))  # 2015-02-17 
SELECT INTEGER(TIMESTAMP('2015-02-17')) # 1424131200000000 

6/20/15 को 6/1/15 के बीच दो दिनांकों के बीच दिनों की संख्या की गणना करने के लिए (उदाहरण के लिए), आप यह कर सकते हैं:

SELECT (DATEDIFF(TIMESTAMP('2015-06-20'), TIMESTAMP('2015-06-01')) + 1) 

और अंत में व्यावसायिक दिनों की गणना करने के लिए, आप एफ का उपयोग कर सकते हैं ollowing:

SELECT 
    (DATEDIFF(TIMESTAMP('2015-06-20'), TIMESTAMP('2015-06-01')) + 1) 
    -(INTEGER((DATEDIFF(TIMESTAMP('2015-06-20'), TIMESTAMP('2015-06-01')) + 1)/7) * 2) 
    -(CASE WHEN DAYOFWEEK(TIMESTAMP('2015-06-01')) = 1 THEN 1 ELSE 0 END) 
    -(CASE WHEN DAYOFWEEK(TIMESTAMP('2015-06-20')) = 7 THEN 1 ELSE 0 END) 

इस सप्ताहांत के रूप में शनि और सूर्य पर विचार और किसी भी छुट्टियों को शामिल नहीं के साथ सरल कार्य दिवस गणना है।

+0

धन्यवाद बहुत सारे कुरबानी। प्रतिभाशाली। मैं पिछले कुछ दिनों से व्यावसायिक दिनों से जूझ रहा था। जादू की तरह काम करता है। –

+0

कौरबानी मैं इसे उत्तर के रूप में चिह्नित करना पसंद करूंगा। मुझे नहीं पता कि, मैं जो कुछ देखता हूं वह आपके प्रश्न का उत्तर देता है। मुझे इसे वोट करने या इसे पसंद करने या इसे उत्तर के रूप में चिह्नित करने के विकल्प नहीं दिखते हैं। मैं उसे कैसे कर सकता हूँ? –

7

यदि आप BigQuery में मानक एसक्यूएल बोली का उपयोग कर रहे हैं, तो यह फ़ंक्शन मानव पठनीय टाइमस्टैम्प TIMESTAMP_MICROS (1424184621000000) -> 2015-02-17 14:50:21 यूटीसी में रूपांतरण करता है। रेफरी: https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#timestamp-string

+0

TIMESTAMP_MICROS (visitStartTime * 1000000) GA डेटा के लिए बहुत अच्छा काम करता है, धन्यवाद! –

संबंधित मुद्दे