There are several plugins that can do this.
With my plugin Stamp, you can add a timestamp to the filename or path in the following formats:
<script src="/assets/build/js/1399647655/scripts.js"></script>
<script src="/assets/build/js/scripts.1399647655.js"></script>
<script src="/assets/build/js/scripts.js?ts=1399647655"></script>
The last one, which is the one you're looking for is made with:
<script src="{{ craft.stamp.er('/assets/build/js/scripts.js', 'query') }}"></script>
You can also get only the timestamp, and use it however you want, like this:
{% set timestamp = craft.stamp.er('/assets/build/js/scripts.js', 'tsonly') %}
It's worth noting that you'd ideally want to not use a query string for this, as various frontside proxies could ignore it. But, you need to be able to set up the proper url rewriting in your webserver for the filename and folder versions, so that might not always be possible.
There is also Cache Buster from Focuslab which can add a query string, but also supports file revisioning based on a manifest file.
And there's Asset Rev from Club Studio which is primarily for file revisioning based on a manifest file, but falls back to a query string.